我有这个可以编辑员工记录的应用程序,为此,用户可以单击该特定记录并按下编辑按钮,或者用户只需按下我创建的键盘中的快捷键即可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是我的应用程序上的创建操作。
答案 0 :(得分:1)
或者用户只需按下我创建的键盘中的快捷键即F2。
你有几个问题:
所以基本代码是:
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);