我有一个可以编辑员工记录的应用程序,为此,用户可以单击该特定记录并按“编辑”按钮,或者用户只需按我创建的键盘中的快捷键即可F2。这是我的代码:
btn_EditEmployee.getInputMap(btn_EditEmployee.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0), "btn_EditEmployee");
btn_EditEmployee.getActionMap().put("btn_EditEmployee", new AbstractAction() {
public void actionPerformed(ActionEvent e) {
//my code for editing an employee
}
});
但我的问题是,如果我单击表上的记录,我创建的 F2 按键将不起作用。有人可以告诉我为什么它不起作用吗?预先感谢您的回答。
编辑:我忘了提及,当我在 JTable 上选择一条记录时,F1、F3-F12 正在使用上面的代码。唯一的问题是F2。我坚持使用 F2 作为编辑操作,因为我的 F1 是我的应用程序上的创建操作。
最佳答案
or the user can just press the shortcut key in the keyboard that I created which is the F2.
您有几个问题:
- 您的代码使用 F1 作为 KeyStroke,而不是 F2。
- 您正在使用按钮的InputMap/ActionMap,而不是表格。您应该为表格而不是按钮执行 KeyBindings。
- 您不应该创建两个操作。相反,您创建一个可以由按钮和表格共享的操作。
所以基本代码是:
Action action = new AbstractAction(...)
{
@Override
public void actionPerformed(ActionEvent e)
{
// add logic here
}
};
JButton button = new JButton( action );
String key = "EditAction"
KeyStroke ks = KeyStroke.getKeyStroke(KeyEvent.VK_R, 0);
InputMap im = table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
im.put(ks, key);
table.getActionMap().put(key, action);
关于java - 在 JTable 中选择记录时 Netbeans F2 按键不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38668272/