In this post I have shared you the solution about how to know in which Row and Column of JTable I have clicked.
According to the solution, wherever you have clicked on the JTable the result will be shown using
Message Dialog Box (Check the OUTPUT picture below).
Code Example:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
class SimpleTableTest extends JFrame
{
private JPanel topPanel ;
private JTable table;
private JScrollPane scrollPane;
private String[] columnNames= new String[3];
private String[][] dataValues=new String[3][3] ;
public SimpleTableTest()
{
setTitle(“JTable Cell Click”);
setSize(300,300);
topPanel= new JPanel();
topPanel.setLayout(new BorderLayout());
getContentPane().add(topPanel);
setDefaultCloseOperation(EXIT_ON_CLOSE);
columnNames=new String[] {“Column 1” , “Column 2” , “Column 3”};
dataValues = new String[][] {
{“1″,”2″,”3”},
{“4″,”5″,”6”},
{“7″,”8″,”9″}
};
TableModel model=new myTableModel();
table =new JTable( );
table.setRowHeight(50);
table.setModel(model);
scrollPane=new JScrollPane(table);
topPanel.add(scrollPane,BorderLayout.CENTER);
table.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent e)
{
int row=table.rowAtPoint(e.getPoint());
int col= table.columnAtPoint(e.getPoint());
JOptionPane.showMessageDialog(null,”You have Clicked on Column :” +(col+1)+ ” : and Row : ” +(row+1));
System.out.println(table.getValueAt(row,col).toString());
}
}
);
}
public class myTableModel extends DefaultTableModel
{
myTableModel( )
{
super(dataValues,columnNames);
System.out.println(“Inside myTableModel”);
}
public boolean isCellEditable(int row,int cols)
{
return false;
}
}
public static void main(String args[])
{
SimpleTableTest mainFrame=new SimpleTableTest();
mainFrame.setVisible(true);
}
}
OUTPUT:

Like this:
Like Loading...