0
情景是這樣的:用戶編輯一個單元格,然後按Tab鍵。編輯被停止,並且值在模型中。但是,如果postUpdateTestFailed()
返回true,我想將選擇移回剛剛編輯的單元格,以便用戶可以進行一些修改。問題是,它不起作用。它適用於其他任何東西,但在我的情況下,選定的單元格... :(因爲用戶按TAB鍵,聚焦/選定的單元格總是下一個單元格,看起來像我的選擇改變在這種情況下被忽略。 :)如何在TAB被按下後回到JTable中的編輯單元格?
public void tableChanged(TableModelEvent tme) {
int row = tme.getFirstRow();
int col = tme.getColumn();
int type = tme.getType();
switch (type) {
case TableModelEvent.UPDATE:
currentRow = areenTable.convertRowIndexToView(row);
currentColumn = areenTable.convertColumnIndexToView(col);
if (postUpdateTestFailed()) {
// if the test fails, I want to move back to the edited cell
areenTable.changeSelection(currentRow, currentColumn, false, false);
}
break;
// the rest of switch
} // switch
} // tableChanged() method
編輯1:我希望有人經歷過同樣的問題,解決它在某種程度上...
編輯2:我通常會做這在我自己的細胞編輯器實現,並在驗證失敗時阻止提交。不幸的是,在這種特殊情況下,我必須在之後調用postUpdateTestFailed()
更改已提交...然後將光標定位到先前編輯的單元格。奇怪的是,我可以移動到任何其他單元格,但最後編輯!我認爲這是一個錯誤。
爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 – 2012-02-21 16:26:48
安德魯,如果有人需要上述問題的SSCCE,那麼該人不應該麻煩回答...只是忽略我的問題,一切都會好起來的。但我現在要編輯一下。 – DejanLekic 2012-02-21 16:33:06
*「如果有人需要SSCCE」*誰說我需要它?這只是一個SSCCE *鼓勵*我更深入地看待問題。順便說一句 - 你*需要*一個答案? – 2012-02-21 17:29:51