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


我有一个叫做GameGUI的类,这是一个JFrame。
此JFrame填充有图块(带有ImageIcons的JLabels)
我使用箭头键在JFrame周围移动我的家伙(只需更新JLabel Images)
我做了一个设置选项,这是一个新的JFrame,我先设置了Visbile(true),然后进行了更改,然后设置了setVisible(false)
在设置setVisible(false)之后,我的箭头键不再使我的角色在GameGUI上移动。


我已经尝试了以下方法,哦,这没有用:(所有猜测都是基于谷歌搜索我的问题)

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


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

非常感谢您将注意力重新集中到GameGUI上!

谢谢!

最佳答案

5. setVisible(false)之后,我的箭头键不再使我的角色在GameGUI上移动。


不要使用KeyListener。 Swing被设计为与Key Bindings一起使用。

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

10-06 09:19