只有两个JTables
时才会出现问题。 TableB
会收听TableA
并根据应用于TableA
的更改更改内容。
没有TableB
,TableA
表现得很好。在编辑单元格时按向下箭头时,焦点将转到下面的单元格,单元格内容将突出显示,用户可以更改单元格的全部内容。
如果图片中显示TableB
,则在stopEditing()
(好)中触发编辑单元格TableA
时按下向下箭头时,TableB
会收到有关更改的通知TableA
并更新自己的数据。此时焦点在TableA
(不好)中丢失。此时TableA
应该在编辑阶段将焦点转到下面的单元格。
我尝试通过以下方式重点关注TableA
:
TableA.requestFocusInWindow();
TableA.setSelectedCell(TableA.getSelectedRow(), getEditableColumn());
问题是选择了单元格,但它应该处于编辑阶段而不仅仅是被选中。
然后我尝试了:
TableA.editCellAt( TableA.getSelectedRow( ), getEditableColumn() );
但上述行似乎没有做任何事情。
我应该怎么做才能防止TableB
的大小/重新粉饰影响焦点和行为?TableA
?
答案 0 :(得分:0)
在编辑单元格时按下向下箭头在TableA(好)中触发stopEditing()时,TableB会收到TableA中的更改通知并更新它自己的数据。
使用TableModelListener
侦听表格中数据的变化。
查看:JTable -> TableModeListener了解一个简单示例,帮助您入门。该示例更新了同一个表中的数据,因此您显然需要更改它以更新另一个表的TableModel。