Javaでアプリを作成しています。JTable のセルを編集するときに追加の動作を提供する必要があります。したがって、理想的には、編集後にセルがフォーカスを失ったときにこれが発生します。後処理によっては、セルの値をリセットする場合があります。セル エディタを使用してみましたが、望ましい動作が得られません。
デフォルトの JTable では、セルをダブルクリックすると編集可能になります。しかし、CellEditor の私の実装では、セルがフォーカスされるとすぐに編集可能になります。
My カスタム 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();
}
}
どんな助けでも大歓迎です。ありがとう。