好吧,长话短说,这就是正在发生的事情以及我正在尝试做的事情。
我有一个叫做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
提供解决方案。