编辑单元格时按下键时选择不起作用的JTable编辑

时间:2017-02-22 17:46:50

标签: java swing jtable

只有两个JTables时才会出现问题。 TableB会收听TableA并根据应用于TableA的更改更改内容。

没有TableBTableA表现得很好。在编辑单元格时按向下箭头时,焦点将转到下面的单元格,单元格内容将突出显示,用户可以更改单元格的全部内容。

如果图片中显示TableB,则在stopEditing()(好)中触发编辑单元格TableA时按下向下箭头时,TableB会收到有关更改的通知TableA并更新自己的数据。此时焦点在TableA(不好)中丢失。此时TableA应该在编辑阶段将焦点转到下面的单元格。

我尝试通过以下方式重点关注TableA

TableA.requestFocusInWindow();
TableA.setSelectedCell(TableA.getSelectedRow(), getEditableColumn());

问题是选择了单元格,但它应该处于编辑阶段而不仅仅是被选中。

然后我尝试了:

TableA.editCellAt( TableA.getSelectedRow( ),  getEditableColumn() );

但上述行似乎没有做任何事情。

我应该怎么做才能防止TableB的大小/重新粉饰影响焦点和行为?TableA

1 个答案:

答案 0 :(得分:0)

  

在编辑单元格时按下向下箭头在TableA(好)中触发stopEditing()时,TableB会收到TableA中的更改通知并更新它自己的数据。

使用TableModelListener侦听表格中数据的变化。

查看:JTable -> TableModeListener了解一个简单示例,帮助您入门。该示例更新了同一个表中的数据,因此您显然需要更改它以更新另一个表的TableModel。