我正在用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