Java 为不同选项卡下的按钮设置相同的快捷键
我有一个多选项卡的框架,我必须设置不同选项卡下某些按钮的快捷键,但它们必须使用相同的键。 例如: 在tab1下,我有一个“Do that”按钮,它应该对F1键做出反应, 但是如果我切换到tab2,我应该有一个“DoThis”按钮 这也会对F1按钮作出反应,但tab1上的操作不应作出反应 被解雇 我曾尝试将Java 为不同选项卡下的按钮设置相同的快捷键,java,swing,jbutton,key-bindings,keylistener,Java,Swing,Jbutton,Key Bindings,Keylistener,我有一个多选项卡的框架,我必须设置不同选项卡下某些按钮的快捷键,但它们必须使用相同的键。 例如: 在tab1下,我有一个“Do that”按钮,它应该对F1键做出反应, 但是如果我切换到tab2,我应该有一个“DoThis”按钮 这也会对F1按钮作出反应,但tab1上的操作不应作出反应 被解雇 我曾尝试将keysister添加到选项卡/键/面板,但如果按F1键,它仍然是触发的第一个操作 但我认为原因是我使用了一个开关,它控制键事件,比如case-KeyEvent.VK_F1:mybutton1.
keysister
添加到选项卡/键/面板,但如果按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中放置的方法(对象、操作)不适用
用于参数(字符串、void)
错误,(抱歉,这里是Java/Swing新手)
使用
- 例如,您可以为实现
Swing操作的任何JCOmponents设置相同的
- (对于
F1
)输出到Swing动作
,在动作
内,您必须调用
- 永远不要使用
将按键绑定到按钮的doClick()
具有视觉和听觉反馈的优点;但是,正如您所观察到的,doClick()
不是一个操作。相反,创建一个调用给定按钮的doClick()
方法的操作
,并将其绑定到所需的击键
,如图所示。cheers Trouted'mybutton.getInputMap().put(KeyStroke.getKeyStroke(“F1”),“pressed”);mybutton.getActionMap().put(“按下”,mybutton.doClick());'无法使其工作..:/如果不发布一个,对我有用,你的,@装满鳗鱼的气垫船,皮特,谢谢你在这里发布了两个很棒的帖子:-)关于@trashgood的精彩描述