在JTable中选择记录时,Netbeans F2按键不起作用



我有一个应用程序,可以编辑员工的记录,为此,用户可以单击该特定记录并按下编辑按钮,或者用户只需按下我创建的键盘上的快捷键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是我的应用程序上的创建操作。

或者用户只需按下我创建的键盘上的快捷键F2即可。

你有几个问题:

  1. 您的代码使用F1作为KeyStroke,而不是F2
  2. 您使用的是按钮的InputMap/ActionMap,而不是表。您应该为表而不是按钮执行KeyBindings
  3. 您不应该创建两个操作。相反,您可以创建一个可由按钮和表共享的单个Action

所以基本代码是:

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);

相关内容

  • 没有找到相关文章

最新更新