我正在用Java創建一個應用程序。在編輯JTable中的單元格時,我需要提供其他行爲。所以理想情況下,當編輯後單元失去焦點時會發生這種情況。根據一些後處理,我可能會重置單元格的值。我嘗試使用一個單元格編輯器,但它沒有給我所需的行爲。在JTable中編輯單元格時提供額外的行爲
僅當我雙擊單元格時,纔會在默認的JTable中變爲可編輯。但是在我的CellEditor實現中,單元格一旦焦點就變得可編輯。
這裏是我的自定義CellEditor的代碼,
public class ParameterDefinitionEditor
extends AbstractCellEditor
implements TableCellEditor{
private JTable table;
private DefaultTableModel defaultTableModel;
public ParameterDefinitionEditor(DefaultTableModel defaultTableModel,
JTable table) {
super();
this.table = table;
this.defaultTableModel = defaultTableModel;
TableColumnModel columnModel = table.getColumnModel();
columnModel.getColumn(0).setCellEditor(this);
}
public Component getTableCellEditorComponent(JTable table,
Object value,
boolean isSelected,
int row,
int column) {
if (isSelected) {
// Do some processing.
}
((JTextField)component).setText((String)value);
// Return the configured component
return component;
}
public Object getCellEditorValue() {
return ((JTextField)component).getText();
}
}
任何幫助將不勝感激。謝謝。
備案:這是一個無效的實現CellEditor中的 - 當終止編輯它_must_通知其監聽器內部原因! – kleopatra 2012-09-11 07:05:41