确定单击哪个JTable单元

时间:2011-01-25 15:49:04

标签: java swing jtable listener

当用户点击JTable上的单元格时,如何计算所单击单元格的行和列?如何在JLabel

中显示此信息

5 个答案:

答案 0 :(得分:34)

现有的答案有效,但如果您没有启用单元格选择,还有一种替代方法可以更好地工作。在MouseListener内,执行以下操作:

public void mouseClicked(java.awt.event.MouseEvent event) {
    int row = theTable.rowAtPoint(event.getPoint());
    int col = theTable.columnAtPoint(event.getPoint());
    // ...

答案 1 :(得分:17)

您可以在JTable上使用以下方法来检索所选单元格的行和列:

int rowIndex = table.getSelectedRow();
int colIndex = table.getSelectedColumn();

在表中添加SelectionListener以在选择表时捕获事件。

答案 2 :(得分:3)

这对我有用!!!

jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
@Override
 public void mouseClicked(java.awt.event.MouseEvent evt) {
    int row = jTable1.rowAtPoint(evt.getPoint());
    int col = jTable1.columnAtPoint(evt.getPoint());
    if (row >= 0 && col >= 0) {


    }
 }
});

答案 3 :(得分:1)

你试过addMouseListener()吗?我希望你是关于使用Swing的JTable。

答案 4 :(得分:1)

我发现当隐藏/重新排序列时columnAtPoint会返回可见列索引,这不是我需要的。对我有用的代码是

int row = theTable.convertRowIndexToModel(theTable.rowAtPoint(event.getPoint()));
int col = theTable.convertColumnIndexToModel(theTable.columnAtPoint(event.getPoint()));