2017-02-22 92 views
0

僅當有兩個JTables時,纔會出現此問題。 TableB收聽TableA並根據應用於TableA的更改更改其內容。在編輯單元格時按下鍵時,所選JTable編輯不起作用

沒有TableBTableA表現良好。在編輯單元格時按下向下箭頭時,焦點將轉到下面的單元格,單元格內容會變亮並且用戶可以更改單元格的全部內容。

隨着畫面TableB,按下箭頭時,在編輯單元格stopEditing()TableA(好)觸發,TableB被通知在TableA和更新改變它自己的數據。此時,重點在TableA(壞)中丟失。 TableA此時應該在編輯階段關注下面的單元格。

我試圖通過獲得焦點回到TableA

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

的問題是被選中的單元格,但它應該是不只是被選擇的編輯階段。

我然後設法:

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

但上面的線似乎並沒有做任何事情。

我應該怎麼做才能防止調整/重新繪製TableB影響焦點和行爲或TableA

+0

爲了儘快提供更好的幫助,請發佈證明您的問題的有效[mcve],這將減少混淆和更好的答案。 – Frakcool

回答

0

當在編輯單元格時按下向下箭頭在TableA(好)中觸發stopEditing()時,TableB被通知TableA中的更改並更新它自己的數據。

使用TableModelListener來監聽表中數據的變化。

查看:JTable -> TableModeListener一個簡單的例子,讓你開始。該示例更新了同一個表中的數據,因此顯然需要將其更改爲更新另一個表的TableModel。

+0

我正在使用TableModelListener來更改其他表。 – user1144251

+0

@ user1144251,以及你在幾個小時前被問及發佈你的'MCVE'來證明問題。你沒有,所以我們不能猜測你可能做什麼,也可能沒有做什麼。 – camickr

相關問題