关于
editorComponent,我该在哪里初始化此变量?
变量
editorComponent是的字段
DefaultCellEditor。
代替
class CellEditor extends JTextField implements TableCellEditor
考虑
class CellEditor extends DefaultCellEditor
然后,您可以执行以下操作:
@Overridepublic Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { JTextField ec = (JTextField) editorComponent; if (isSelected) { ec.selectAll(); } return editorComponent;}附录:如@
Edoz所建议,并在此完整示例中进行了说明,您可以
selectAll()在鼠标单击启动编辑时有选择地重新排队。
JTable table = new JTable(model) { @Override // Always selectAll() public boolean editCellAt(int row, int column, EventObject e) { boolean result = super.editCellAt(row, column, e); final Component editor = getEditorComponent(); if (editor == null || !(editor instanceof JTextComponent)) { return result; } if (e instanceof MouseEvent) { EventQueue.invokeLater(() -> { ((JTextComponent) editor).selectAll(); }); } else { ((JTextComponent) editor).selectAll(); } return result; }};


