我有一個多標籤框架,我必須在不同標籤下設置某些按鈕的快捷方式,但它們必須使用相同的密鑰。 例如:設置不同標籤下按鈕的相同快捷鍵
在TAB1,我有一個「做」按鈕,這應該反應F1鍵, 但如果我是切換到TAB2,我應該有一個「做這個」按鈕 即應也會對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中放(對象,操作)的方法並不適用 的參數(字符串,無效) 錯誤,(對不起,這裏一個Java/Swing的新手)
嘗試過的歡呼'\t \t \t mybutton.getInputMap()。put(KeyStroke.getKeyStroke(「F1」),「pressed」); \t \t \t mybutton.getActionMap()。put(「pressed」,mybutton.doClick());'無法得到它的工作..:/ – Sin5k4
沒有發佈沒有發佈[SSCCE](http://sscce.org/),爲我工作,[休息在這裏描述](http://stackoverflow.com/a/ 10674489/714968),您的[SSCCE可以基於](http:// stackoverflow。com/a/10591773/714968),@航空全鰻魚,皮特感謝你在這裏的兩個偉大的帖子:-) – mKorbel
關於[JButton和KeyBindings]的優秀描述問題(http://stackoverflow.com/a/10712202/714968) )通過@trashgod – mKorbel