2014-04-18 86 views
0

好吧,這麼長的故事總結,這是發生了什麼,我正在嘗試做什麼。有KeyListener聽不同的JFrame

  1. 我有一個名爲GameGUI的類,這是一個JFrame。
  2. 此JFrame的是填充磚(含ImageIcons的JLabel)
  3. 我使用箭頭鍵移動我周圍的JFrame(剛更新的JLabel圖像)
  4. 我做了一個設置選項的傢伙,這是一個新的JFrame我setVisbile(true),進行更改,然後setVisible(false)
  5. 我setVisible(false)後,我的箭頭鍵不再讓我的角色在GameGUI上移動。

我曾嘗試以下,哦其中沒有工作:(基於關閉谷歌搜索我的問題,所有的猜測)

GameGUI gg = new GameGUI(); 
gg.setFocusable(true); 
gg.addKeyListener(null); 
gg.requestFocusInWindow(); 

我似乎無法找到一個辦法讓我的KeyListener搬回到GameGUI打開(顯示)此設置菜單後關閉它(使之不可見)。我在設置菜單中有單選按鈕,這就是爲什麼我相信由於物理鼠標點擊而獲得焦點的原因。

獲得焦點回到GameGUI的任何幫助將不勝感激!

謝謝!

+0

我認爲'gg.addKeyListener(null);'行是有罪的。 – slackmart

+0

這些都不是全部實施過,抱歉不提。迄今爲止,我嘗試了所有這些,但都沒有取得成功。 – Austin

+0

請參閱[使用多個JFrames,好/壞實踐?](http://stackoverflow.com/a/9554657/418556) –

回答

1

5.我setVisible(false)後,我的箭頭鍵不再讓我的角色在GameGUI上移動。

請勿使用KeyListener。 Swing旨在與Key Bindings一起使用。

請參閱Motion Using the Keyboard,這將解釋您的可能問題並使用Key Bindings提供解決方案。