为了账号安全,请及时绑定邮箱和手机立即绑定

Java AWT 在随机时间长度后停止收听输入

Java AWT 在随机时间长度后停止收听输入

森林海 2023-02-16 16:29:27
(对不起,我无法解决这个问题,我需要帮助!)我正在创建一个自定义游戏引擎,并遇到了一个问题,即在游戏运行时 - 游戏停止接受输入我检查过,程序似乎继续在后台运行。它似乎也不会因不同的机器而有所不同(我的主要设备是 Mac Book Pro 2011)import java.awt.event.*;import java.io.IOException;import java.awt.*;import javax.swing.*;public class Focus extends JFrame implements KeyListener {       private static final long serialVersionUID = 1L;        char currKey = '\0';        public static void main(String[] args) throws IOException {            SwingUtilities.invokeLater(new Runnable() {public void run() {new UIManager();}});        }        public Focus() throws IOException {                 Container contentPane = getContentPane();            contentPane.add(new DrawCanvas());            addKeyListener(this);            setDefaultCloseOperation(EXIT_ON_CLOSE);            pack();            setFocusable(true);            setVisible(true);        }            private class DrawCanvas extends JPanel {                               private static final long serialVersionUID = 1L;               public void paintComponent(Graphics pen) {                //Drawloop                if(currKey == 'k') {                    //This is the code that randomly stops running                    System.out.println("Yo");                }                try {                    Thread.sleep(10);                }                catch (InterruptedException e) {                    e.printStackTrace();                }                repaint();            }        }        @Override        public void keyTyped(KeyEvent e) {            currKey = e.getKeyChar();        }        @Override        public void keyPressed(KeyEvent e) {            currKey = '\0';        }        @Override        public void keyReleased(KeyEvent e) {           }}代码在我看来是正确的(但是,它总是如此)并且唯一可能的触发点是 AWT 在 Main 中实例化,在 UIManager 中运行并且移动代码驻留在播放器中,尽管我对 AWT 的了解不够了解是否情况就是如此,重新定位备份中的代码会导致程序崩溃。任何帮助将不胜感激。
查看完整描述

1 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

事实证明这是 Java 和 MacOS 键重复的问题——已在较新的 Java 版本中修复

修复更新java


查看完整回答
反对 回复 2023-02-16
  • 1 回答
  • 0 关注
  • 66 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信