3
我發現this forum thread這表明壓倒一切的ListSelectionModel,以防止被選中的行。攔截JTable的選擇更改事件
我想防止選擇更改直到用戶確認丟棄時存在用於當前選擇的項目未保存的更改(外部表)。喜歡的東西:
public class confirmSelectionChange extends DefaultListSelectionModel {
public void setSelectionInterval(int index0, int index1) {
if (unsavedChanges()) {
super.setSelectionInterval(int index0, int index1);
}
}
private boolean unsavedChanges() {
if (noUnsavedChangesExist) {
return true;
}
// Present modal dialog: save, discard cancel
if (dialogAnswer == SAVE) {
// save changes
return true;
} else if (dialogAnswer == DISCARD) {
return true;
} else {
return false;
}
}
}
是否有可能插入的變化的ListSelectionModel中間阻擋碼?是否有更好的方法來攔截選擇變更事件?
我已經聽他們,但變化已經由當時發生的事情。
很抱歉,如果這是不好的形式來問,回答和評論,但我只是想補充一點,在我的實際的程序我把上面的對話框代碼,以它自己的方法,因爲有其他情況,當我需要同樣的保存/丟棄/取消功能(例如退出)。 – Matt 2010-06-17 20:17:56
+1覆蓋更改選擇方法:) – 2012-09-24 02:17:53