gpt4 book ai didi

java - Swing 键盘没有反应

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:23:46 24 4
gpt4 key购买 nike

我在我设置为 FullScreenWindow 的 JFrame 对象上使用 KeyListener,类似于以下代码:

class Game{

private GraphicsDevice device;
...

public void run(){
JFrame frame = new JFrame();
frame.addKeyListener(new MarioKeyListener());
device.setFullScreenWindow(frame);
}

...
}

如果我只是在我的 main 方法中创建一个 Game 对象并调用 run(),它就可以正常工作。但是我想在我添加到另一个 JFrame-s MenuItem 的 MouseAdapter 的 mousePressed() 函数中执行此操作。结果是程序正常运行但不接受任何键盘输入。

JMenu gamemenu = new JMenu("Game");
JMenuItem newGame = new JMenuItem("New Game");
newGame.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e){
Game g = new Game();
g.run();
}
});
gamemenu.add(newGame);

我认为我的框架对象没有聚焦,但调用 setFocusable(true) 和 requestfocusinwindow() 没有帮助。如果有人知道出了什么问题或如何解决这个问题,将不胜感激...

东美

最佳答案

requestFocusInWindow() ..

Requests that this Component get the input focus, if this Component's top-level ancestor is already the focused Window.

你在检查返回值吗?我怀疑它失败了,因为在调用该方法时新窗口不是焦点组件。

如果是这种情况,可能会以类似于 dialog focus 的方式找到答案添加 RequestFocusListener 的策略混合。

关于java - Swing 键盘没有反应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8858570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com