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