让KeyListener监听不同的JFrame

时间:2014-04-18 22:17:09

标签: java swing netbeans keylistener

好的长话短说,这就是正在发生的事情以及我想要做的事情。

  1. 我有一个名为GameGUI的类,这是一个JFrame。
  2. 此JFrame填充了tile(带有ImageIcons的JLabel)
  3. 我用我的方向键移动我的家伙围绕JFrame(只是更新JLabel图像)
  4. 我做了一个设置选项,这是一个新的JFrame,我setVisbile(true),进行更改,然后setVisible(false)
  5. 在我setVisible(false)后,我的箭头键不再让我的角色在GameGUI上移动。
  6. 我已经尝试过以下内容,哦,这些都没有用:(所有猜测基于谷歌搜索我的问题)

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

    在打开(显示)此设置菜单然后关闭它(使其不可见)后,我似乎找不到让KeyListener返回GameGUI的方法。我在设置菜单中有单选按钮,这就是为什么我相信它会因为点击物理鼠标而获得焦点。

    任何有关重点关注GameGUI的帮助都会非常感激!

    谢谢!

1 个答案:

答案 0 :(得分:1)

  

5.在我设置可见(假)后,我的箭头键不再让我的角色在GameGUI上移动。

不要使用KeyListener。 Swing旨在与Key Bindings一起使用。

请参阅Motion Using the Keyboard,它将解释您可能遇到的问题并使用Key Bindings提供解决方案。