Sunday, September 17, 2006

How to Create Double-Click Event on a JTable in Swing?

I have created a basic application with buttons, combo boxes a JTable with a JScrollPane and want to have a double-click event on my JTable which opens an "Edit Detail" screen that pulls up the record's data and allows data to be filled in and then saved.

Here is how to set up a double-click event that opens a new form:

1) First set up Mouse Listener on your JTable:
  myJTable.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
JTable target = (JTable)e.getSource();
int row = target.getSelectedRow();
int column = target.getSelectedColumn();
// do some action
}
}
});
This will give you the row and column that was double clicked.

2) You can then use this to get the value of that row's ID and open a new form and populate it with this record's data. Here is how you would open a new form
   JFrame newFrame = new JFrame();
newFrame.setTitle("Detail Screen");

newFrame.setVisible(true);


The below link was useful in working out how to do this and has many other helpful items:

Detect Double Click