I'm struggling with a similar problem.
How to find out the double clicked row??
There is no such method like in JList: locationToIndex(Point location)!!
nil_dib
Main Topics
Browse All TopicsI'm trying to figure out how to invoke a JDialog when a user double-clicks on a cell in a JTable. Does this involve an ItemListener? If so, what are the steps to 'knit' the event handler to the JTable?
I'm filling the JTable from a database query, and want to allow the user to edit a specific row. My thinking is they would dbl-click a cell of the JTable, which would trigger my software putting up a JDialog.
I'm using JBuilder 4.0, and am new to EE.
TIA,
Lynn Allan
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
Hi yongsing,
Thanks for your response ... it gets me quite a bit of the way to a solution.
but ...
As nil_dib comments, I also need to find out how to identify the specific double-clicked row. I don't need to know which particular cell of the matrix, but I do have to be able to detect so I can put up a dialog related to that particular database record.
Thanks, and hope to get an expansion of your answer.
Lynn Allan
FWIW,
I found out about a Sun web-page that looks like it addresses my question, hopefully in depth. I haven't evaluated it yet, but you can check ...
http://java.sun.com/docs/b
I'm leaving this question open for further comments, and will post a code snippet when and if a solution is forthcoming.
L.Allan
The following example will pop up a dialog box with the row & column no of the selected cell on clicking it.
/**
* Title: <p>
* Description: <p>
* Copyright: Copyright (c) <p>
* Company: <p>
* @author
* @version 1.0
*/
package mypackage;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class TableTest extends JFrame {
JFrame parent=null;
public TableTest() {
parent = this;
Object[][] cellData = {
{"row1-col1", "row1-col2"},
{"row2-col1", "row2-col2"}};
String[] columnNames = {"col1", "col2"};
final JTable table = new JTable(cellData, columnNames);
getContentPane().add(table
setSize(300,300);
setVisible(true);
table.addMouseListener(new
public void mouseClicked(MouseEvent e){
System.out.println("Clicke
JDialog dialog=new JDialog(parent);
JLabel label=new JLabel("Row.."+table.getSe
dialog.getContentPane().ad
dialog.setSize(200,200);
dialog.setVisible(true);
}
});
}
public static void main(String[] args) {
TableTest tableTest = new TableTest();
}
}
-sgoms
Unbelievable! A++++
"sqoms" answered with what appears to be a custom written ** COMPLETE ** program for my specific question. All I had to do was compile and run it. I'm an EE newbie, and I think this is gonna spoil me.
What was especially helpful was that the answer was pretty much the bare minimum, which is good. My impression is that the JTable widget is perhaps the most complicated Swing component, and the books I looked at clutter up the issue with TableModels and CellRenderers, which thoroughly confuse this Swing newbie.
Just to make sure I understood the code, I did tweak it a little to a 3x4 table, as a 2x2 table can hide base-zero issues. I also changed the column headings and cell contents to be zero-based to correspond to what showed up in the dialog:
Object[][] cellData
= {{"row0-col0", "row0-col1", "row0-col2" },
{"row1-col0", "row1-col1", "row1-col2" },
{"row2-col0", "row2-col1", "row2-col2" },
{"row3-col0", "row3-col1", "row3-col2" }};
String[] columnNames = {"col0", "col1", "col2"};
So maybe I should reduce the grade to an A+++ instead of an A++++ ???? :-)
The response from Kylar was also very good, and appears to have been sent prior to sqoms reply. I've asked the EE Support people to give both replies an A, but I'm not sure if I went about that correctly.
Hi sgoms,
I can see why your last 10 grades received have been
AAAAAAAAAA
and why you state in your member profile
"Solving problems gives me immense satisfaction!"
As a newbie, I only have a minimum number of points (200), which could go fast. I felt kind of cheesy only offering 50 for that question, but ...
On the EE tips page, they state:
"If a member gets helpful solutions from several Experts, the process of posting comments allows that member to pull pieces from several comments to solve the issue at hand, and keep the question open for more proposed solutions. In this case, they may reward Expert points to multiple Experts by notifying Community Support. "
I tried this but I'm not clear if it will happen. Plus I don't have enough points (yet) to be generous. I think I spelled your id as sQoms rather than sGoms. Sorry.
As a rank newbie, I'm unclear how I would go about doing your suggestion above: "post an empty question to Kylar and give him points." Also, realize that not all of us have almost 52,000 points accumulated :-)
Hope to "encounter" you again as I take advantage of this site. I've just started working remotely for a former company on a Linux+Java+mysql project, none of which I have much familiarity with. (as you can probably tell, at least from the initial Java question. And I know even less about Linux and mysql)
It's a great opportunity, but I know I'm going to have lots of questions.
Down to 153 pts :-(
Lynn Allan
Business Accounts
Answer for Membership
by: yongsingPosted on 2001-02-02 at 00:30:55ID: 5805081
Add a mouse listener to your JTable. Show the dialog box if the click count is 2.
) == 2)
myJTable.addMouseListener(
new MouseAdapter()
{
public void mouseClicked(MouseEvent mouseEvent)
{
if (mouseEvent.getClickCount(
{
// invoke dialog box here
}
}
});