我正在用 Java 创建一个应用程序。在编辑 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();
}
}
任何帮助将不胜感激。谢谢。