java - 使用java的keylistener按住并离开时空格键不注册
问题描述
当我坚持并离开时,程序会很好地注册它们。但是,当我点击空间时它不会注册。如果您将 VK_LEFT 切换到 VK_RIGHT 然后继续保持向右和向上同时击中空间它工作正常。
import javax.swing.JFrame;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
public class Testing implements KeyListener {
public boolean isUp;
public boolean isLeft;
public Testing() {
JFrame application = new JFrame();
application.addKeyListener(this);
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
application.setSize(500, 500);
application.setVisible(true);
}
public static void main(String[] args) {
Testing test = new Testing();
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_UP)
isUp = true;
else if(e.getKeyCode() == KeyEvent.VK_LEFT)
isLeft = true;
else if(isUp && isLeft && e.getKeyCode() == KeyEvent.VK_SPACE)
System.out.println("pew pew");
}
@Override
public void keyReleased(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_UP)
isUp = false;
else if(e.getKeyCode() == KeyEvent.VK_LEFT)
isLeft = false;
}
@Override
public void keyTyped(KeyEvent e) {
}
}
它应该在向上和向左时注册空间,就像在向上和向右一样,但事实并非如此。
解决方案
推荐阅读
- php - 在 laravel 8 中使用 Mailjet smtp 发送邮件
- javascript - 在数组javascript中的每个json对象中添加新字段
- azure-ad-b2c - AADB2C90088:尚未为此端点颁发提供的授权
- github - GitHub 个人访问令牌过期
- javascript - 如何从字节数组中显示 PDF
- apache-flink - Flink StreamingFileSink for BulkFormat 使 partFileIndex 不断增长
- java - 正则表达式合并多个规则
- javascript - Angular:如何拆分 CSV 文件列,我正在通过 json 数据生成 CSV 文件
- ios - 如何在 SWIFT/Xcode/IOS 中实现 Google AdMob 原生模板广告?
- scala - (Scala) 如何加载预训练的 Glove 嵌入?