我有一个JFrame应用程序,它包含一个JTabel。底层表模型是我自己的类,我做了这个扩展AbstractTableModel。第一列中的数据是布尔类型的,所以我希望它以复选框的形式显示值。要做到这一点,我在我的表模型下面的代码添加的getColumnClass方法:检测单元格单击已选择表格行
@Override
public Class<?> getColumnClass(int columnIndex) {
if (columnIndex == 0) {
return Boolean.class;
} else if (columnIndex == 1) {
....
....
}
这工作得很好,我的表格单元格看起来就像下面这正是我想要的:
我现在想要的行为是,当用户点击任何一行的第0列单元格时,我想要切换的销售价格。
我的主类通过实现ListSelectionListener并重写的valueChanged方法监听表中选择。在valueChanged方法中,我可以通过调用table.getSelectedColumn并检查它是否为0,然后获取所选行的对象并切换销售值上的布尔值来检查所选列。
我遇到的问题是,如果一个特定的行已被选中并且用户点击的单元中第0列的所选行的的valueChanged方法不会被调用,因此我因此从未切换的值。
我的问题是,如何检测单元格选择/点击已选择的行?我应该使用鼠标选择侦听器,然后使用鼠标点击事件中的位置数据确定单击的单元格吗?
谢谢。
获取所选的行,然后获取鼠标单击的行,列。比较两者。 – Amarnath