Я создаю приложение на Java. Мне нужно предоставить дополнительное поведение при редактировании ячейки в JTable. Так что в идеале это произойдет, когда ячейка потеряет фокус после редактирования. В зависимости от некоторой постобработки я могу сбросить значение ячейки. Я попытался использовать редактор ячеек, но он не дает мне желаемого поведения.
В JTable по умолчанию, только когда я дважды щелкаю ячейку, она становится редактируемой. Но в моей реализации CellEditor ячейка становится редактируемой, как только она попадает в фокус.
Вот код для My custom 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();
}
}
Любая помощь будет оценена. Спасибо.