我有一個JTable,用戶可以在其中編輯單元格。當用戶通過編輯單元格時,我想啓用一個允許用戶驗證輸入的按鈕。但是,我只想在用戶不再處於編輯模式時執行此操作。有沒有簡單的方法來檢測Jtable中的任何單元格是否正在編輯?檢測是否有任何單元格正在JTable中編輯
謝謝
我有一個JTable,用戶可以在其中編輯單元格。當用戶通過編輯單元格時,我想啓用一個允許用戶驗證輸入的按鈕。但是,我只想在用戶不再處於編輯模式時執行此操作。有沒有簡單的方法來檢測Jtable中的任何單元格是否正在編輯?檢測是否有任何單元格正在JTable中編輯
謝謝
即使簡單:
if (!table.isEditing())
//
我會使用自定義TabelModel
和覆蓋setValueAt
函數來執行您的驗證。它應該在用戶完成編輯表格單元格時自動調用。
事實證明,Jtable有一種方法來檢測是否有任何單元格正在編輯。這其實很簡單。您只需檢查myJtable.getCellEditor()== null。如果不是,則編輯單元格,如果是,則不編輯單元格。
class TableEditor extends DefaultCellEditor{
JTextField com;
public TableEditor(){
getComponent().addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent e){
com.setBackground(new Color.red);
}
});
}
}
然後
tb.setDefaultEditor(Object.class,new TableEditor());