我在框架上向JTable添加了一个关键侦听器。
现在在按键上我有代码
if (ke.getKeyCode()==10)
{
int rowIndex = jTable2.getSelectedRow();
int colIndex = jTable2.getSelectedColumn();
jTable2.editCellAt(rowIndex, colIndex);
ke.consume();
这确实可以编辑单元格,但是直到我用鼠标单击它时,光标才会显示
最佳答案
不要使用KeyListener!
Swing设计为使用键绑定(请参见How to Use Key Bindings上的Swing教程)。那就是您将一个Action绑定到一个KeyStroke。
默认情况下:Enter
键会将单元格选择移至下一行F2
键会将单元格置于编辑模式
因此,您想用F2键的动作替换Enter键的默认动作。使用键绑定很容易做到这一点:
InputMap im = table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
KeyStroke enter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0);
KeyStroke f2 = KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0);
im.put(enter, im.get(f2));
另外,请检出Key Bindings以获取所有Swing组件的默认绑定的列表。