我通过以下方式为表中的两列定义了单元格编辑器:
Java代码:
JComboBox combo = new JComboBox();
//code to add items to the combo box goes here.
JTextField textField = new JTextField();
textField.setHorizontalAlignment(JTextField.RIGHT);
TableColumn column = myJTable.getColumnModel().getColumn(0);
column.setCellEditor(new DefaultCellEditor(combo));
column = myJTable.getColumnModel().getColumn(1);
column.setCellEditor(new DefaultCellEditor(textField));
我面临的问题是,当焦点移动到表格单元格时,该单元格不会自动变为可编辑状态。因此,当焦点移动到第 2 列(该列有一个文本字段作为编辑器)时,插入符号不会出现,除非双击单元格或用户开始键入。第 1 列(具有一个组合框作为编辑器)的情况与此类似,因为除非单击单元格,否则组合框不会出现。这些行为是违反直觉的,对于使用键盘操作的用户来说是不受欢迎的。:(
请提出有关如何解决此问题的指示。
提前致谢。
This example覆盖editCellAt()
in a JTable
有一个DefaultCellEditor
using JTextField
.
-
You can bind the Space key to the startEditing
action defined for JTable
:
table.getInputMap().put(
KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0), "startEditing");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)