gpt4 book ai didi

java - KeyListener 仅在调试器上工作,但在运行时不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 12:30:23 24 4
gpt4 key购买 nike

我有一个奇怪的问题,我的应用程序无法在“运行”时运行,而只能在调试时运行。

我试图在按下按钮时开始游戏,但 keyListener 不起作用(它在调试时确实工作正常)。我有 3 个面板,第一个用于登录,单击按钮后应该开始游戏并删除当前面板。第二个和第三个是得分区和游戏区。当我在没有 LoginPanel 的情况下打开游戏时,它确实工作正常。你有什么想法可能是错的吗?

public LoginPanel(MainFrame mainFrame)
{
this.mainFrame = mainFrame;
makeGIU();

}
public void paintComponent(Graphics g) {
g.drawImage(img, 0, 0, getWidth(), getHeight(), this); // draw the image
}

private void makeGIU()
{
this.img = new ImageIcon(SOURCE).getImage();
setDimension();
button = new JButton("OK");
nickLabel = new JLabel("<html>SOKOBANA<br>TOMASZ JANIEC<br>KACPER KUSTRA</html>", JLabel.CENTER);
nickLabel.setFont(new Font("Gloria Hallelujah",Font.PLAIN,20));
nickLabel.setSize(100,50);
this.setLayout(new FlowLayout());
button.addActionListener(evt -> {
mainFrame.remove(this);
mainFrame.newGameStart();
mainFrame.revalidate();
});
this.setPreferredSize(Size);
this.add(button);
this.add(nickLabel);
this.add(nickText);
mainFrame.getContentPane().add(this,BorderLayout.CENTER);
}
public MainFrame() {
setTitle(TITLE);
setVisible(true);
setBounds(new Rectangle(DEFAULT_WIDTH, DEFAULT_HIGHT));
makeMenu();
this.setResizable(true);
//newGameStart(); // this does work
this.add(new LoginPanel(this)); // this dosent
revalidate();
}


public void newGameStart() {
Thread t = new Thread(new MyRunnable(this, DEFAULT_WIDTH, DEFAULT_HIGHT, mapNames) {
});
t.start();

}

最佳答案

在 JPanel 上添加一个按键监听器,然后使用 if 语句可以设置要控制的按键

关于java - KeyListener 仅在调试器上工作,但在运行时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37912450/

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