检测JTable中的选择变化

时间:2011-03-27 23:59:58

标签: java swing jtable

我正试图找到一种方法来检测用户在JTable中选择的列中的更改。我做了一些调整,似乎你需要以某种方式使用TableColumnModelListener来检测更改,但是当你更改所选的列时,这似乎不会触发事件。

3 个答案:

答案 0 :(得分:13)

您需要添加ListSelectionListener。这将捕获选择事件。以下是一些更深入的Swing教程:

http://download.oracle.com/javase/tutorial/uiswing/events/listselectionlistener.html http://download.oracle.com/javase/tutorial/uiswing/components/table.html#selection

答案 1 :(得分:2)

根据我的阅读,我认为你需要在你的表中添加一个MouseListener,例如在mouseClicked中将使用以下代码获取行和列:



table.addMouseListener(new MouseListener()
{
    @Override
    public void mouseClicked(MouseEvent e)
    {   
       Point pnt = evt.getPoint();
       int row = table.rowAtPoint(pnt);
       int col = table.columnAtPoint(pnt);
    }
}

它应该对你很有用我以前用过类似的东西。 BTW它看起来类似于我在coderanch上发现的问题,链接:  http://www.coderanch.com/t/332737/GUI/java/detect-single-click-any-cell

祝你好运,博罗

答案 2 :(得分:0)

如果通过“更改”表示更改单元格的值,则可以使用AbstractTableModel并实施 fireTableCellUpdated 方法