5
我正在研究一個應用程序,該應用程序需要JPanel對正在按下的轉義鍵作出反應。 我很確定我使用了正確的方法將keybindings註冊到組件,但顯然我仍然在做錯事。這是負責註冊結束反應,上述鍵綁定代碼:JPanel不對KeyBindings做出反應
private void initializeKeyBindings() {
Action a = new AbstractAction() {
private static final long serialVersionUID = 1L;
@Override public void actionPerformed(ActionEvent e) {
menu.setVisible(true);
System.out.println("Herp");
}
};
this.getInputMap().put(KeyStroke.getKeyStroke("ESCAPE"), "ESCAPE");
this.getActionMap().put("ESCAPE", a);
}
這種方法被稱爲我的JPanel的構造所有其它部件都被初始化後。我試過調試它,我發現這個動作本身是在JPanel中註冊的,但actionPerformed()方法中的代碼永遠不會到達。我懷疑這個JPanel可能會有問題,因爲我在疊加的JFrame中使用了CardLayout。我真誠地希望任何人都可以幫助我,因爲它嚴重阻礙了我的進步。
作品,非常感謝! – Exevan
不客氣 – mKorbel