Java 侦听已选择的JTable单元格上的选择
除了使用Java 侦听已选择的JTable单元格上的选择,java,swing,jtable,cell,listselectionlistener,Java,Swing,Jtable,Cell,Listselectionlistener,除了使用MouseListener以外,是否有其他方法可以侦听已选择的单元格(即使是带有JTable)的单元格) 我有一个带有行和列侦听器的JTable。选择已选单元格时,两个侦听器都不会激发: JTable table() { JTable table = new JTable(10, 10); table.getSelectionModel().addListSelectionListener(rowListener); table.getColumnModel()
MouseListener
以外,是否有其他方法可以侦听已选择的单元格(即使是带有JTable
)的单元格)
我有一个带有行和列侦听器的JTable。选择已选单元格时,两个侦听器都不会激发:
JTable table() {
JTable table = new JTable(10, 10);
table.getSelectionModel().addListSelectionListener(rowListener);
table.getColumnModel().getSelectionModel().addListSelectionListener(colListener);
return table;
}
ListSelectionListener rowListener = event -> {
if(event.getValueIsAdjusting())
return;
System.out.println("Row: "+((ListSelectionModel) event.getSource()).getMinSelectionIndex());
};
ListSelectionListener colListener = event -> {
if(event.getValueIsAdjusting())
return;
System.out.println("Col: "+((ListSelectionModel) event.getSource()).getMinSelectionIndex());
};
我的目标是打开/关闭电池。它是有效的,除了监听器在选择一个已经选择的单元格时不会触发之外,这是通过上面的SSCCE表示的
似乎没有任何侦听器可以连接到JTable
(或其模型/选择模型)来处理此问题,除非我使用MouseListener
并手动管理Cooridate。使用TableModelListener
,我可以侦听更改,但此事件针对的是以前的单元格(已取消选择),单击未选择单元格的区域将触发该侦听器
我的目标是打开/关闭电池
在TableModel中存储布尔数据。然后,无论何时单击单元格,该值都将在真/假之间切换
布尔值的默认渲染器是一个复选框。如果不想看到该复选框,则始终可以使用自定义渲染器