我有一个多标签框架,我必须为不同标签下的某些按钮设置快捷方式,但它们必须使用相同的键。例如:
在 tab1 下,我有一个“Do that”按钮,它应该对 F1 键做出反应,但如果我要切换到 tab2,我应该有一个“Do this”按钮,它也应该对 F1 按钮做出反应,但 tab1 上的操作不应该不会被解雇。
我曾尝试添加keylistener
到选项卡/键/面板,但如果我要按 F1 键,它仍然是触发的第一个操作。
但我认为原因是我使用了一个开关,它控制关键事件,例如case KeyEvent.VK_F1:mybutton1.doclick();
那么如何在不同的选项卡下分离动作以分别做出反应呢?有没有办法让例如焦点标签或其他东西?
问候。
编辑:Swing 动作的一些代码:
private class SwingAction extends AbstractAction {
public SwingAction() {
putValue(NAME, "mybutton");
putValue(SHORT_DESCRIPTION, "Some short description");
}
public void actionPerformed(ActionEvent e) {
mybutton.getInputMap().put(KeyStroke.getKeyStroke("F1"),"pressed");
mybutton.getActionMap().put("pressed",mybutton.doClick());
}
}
我得到:
ActionMap 类型中的 put(Object, Action) 方法不适用于参数 (String, void) 错误,(抱歉这里是 Java/Swing 新手)