-1
我正在試圖在面板上實現鍵綁定,該面板會聽取是否按下箭頭鍵。鍵綁定不起作用Java Swing
如果他們被按下,他們會採取行動。 我的代碼:
private void createKeyBindings(){
actionMap = this.getActionMap();
inputMap = this.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
this.getInputMap().put(KeyStroke.getKeyStroke("a"),
"pressedUpArrow");
this.getInputMap().put(KeyStroke.getKeyStroke("released UP"),
"releasedUpArrow");
this.getActionMap().put("pressedUpArrow",
new PressedUpArrowAction());
this.getActionMap().put("releasedUpArrow",
new ReleasedUpArrowAction());
}
的行動工作(當我將它們映射到一個按鈕,按下按鈕,它做什麼動作是應該做的)。
這些鍵綁定被稱爲我的面板(這是一個tabbedpane中的選項卡)。我試着用擊鍵向上和只是一個(以確保這不是問題)。 當問題標籤處於焦點時,我鍵入這些鍵。
有什麼建議嗎?
請在哪裏輸出到GUI,以便更好地幫助發佈[SSCCE](http://sscce.org/) – mKorbel
除了@Stephen的回答 - 在上面的代碼片段中,您正在註冊擊鍵錯誤的inputMap:替換this.getInputMap()。put(..)with inputMap.put(...) – kleopatra
謝謝,修正了,但它沒有解決它。 GUI沒有任何輸出。 PressedUpArrowAction即刻打印一條錯誤消息。該行動的作品,因爲當我將它綁定到一個鍵(使用setAction)它按下時工作。 – Sven