java - Java TSM AdjustCapsLockLEDForKeyTransitionHandling
问题描述
我正在尝试从 捕获上、下、右、左键KeyEvent
,当我按下一个键时,我收到以下消息:
2021-06-05 00:46:11.176 java[47646:1823153] TSM AdjustCapsLockLEDForKeyTransitionHandling - _ISSetPhysicalKeyboardCapsLockLED 禁止
这是我的代码:
字符.java
import java.awt.Image;
import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;
public class Character {
private int dx;
private int dy;
private int x;
private int y;
private String imageLocation;
private Image image;
private boolean moveable;
public Character(int x, int y, String imgLoc, boolean m){
this.x = x;
this.y = y;
imageLocation = imgLoc;
ImageIcon ii = new ImageIcon(this.getClass().getResource(imageLocation));
image = ii.getImage();
moveable = m;
}
public void move() {
if(moveable){
x += dx;
y += dy;
}
}
public boolean moveable(){
return moveable;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
public Image getImage() {
return image;
}
public void keyPresed(KeyEvent e){
int key = e.getKeyCode();
if(key == KeyEvent.VK_LEFT){
System.out.println("left key pressed");
dx = -1;
}
if(key == KeyEvent.VK_RIGHT){
dx = 1;
}
if(key == KeyEvent.VK_UP){
dy = -1;
}
if(key == KeyEvent.VK_DOWN){
dy = 1;
}
}
public void keyReleased(KeyEvent e) {
int key = e.getKeyCode();
if (key == KeyEvent.VK_LEFT) {
dx = 0;
}
if (key == KeyEvent.VK_RIGHT) {
dx = 0;
}
if (key == KeyEvent.VK_UP) {
dy = 0;
}
if (key == KeyEvent.VK_DOWN) {
dy = 0;
}
}
}
** 添加: **
休息室.java
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JPanel;
import javax.swing.Timer;
public class Lounge extends JPanel implements ActionListener{
private Timer timer;
private Player player;
public Lounge(){
//addKeyListener(new TAdapter());
setFocusable(true);
setBackground(Color.BLACK);
setDoubleBuffered(true);
player = new Player(1000, 40);
timer = new Timer(5, this);
timer.start();
}
public void paint(Graphics g){
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(player.getImage(), player.getX(), player.getY(), this);
Toolkit.getDefaultToolkit().sync();
g.dispose();
}
@Override
public void actionPerformed(ActionEvent e) {
player.move();
repaint();
}
private class TAdapter extends KeyAdapter{
public void keyReleased(KeyEvent e){
player.keyReleased(e);
}
public void keyPressed(KeyEvent e){
player.keyReleased(e);
}
}
}
主.java
import javax.swing.JFrame;
public class Main extends JFrame{
public Main(){
add(new Lounge());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(1280,720);
setLocationRelativeTo(null);
setTitle("Be My Guest");
setResizable(false);
setVisible(true);
}
public static void main(String[] args) {
new Main();
}
}
我在 MacBook Pro 2017 上使用 Visual Studio Code
请帮我!
解决方案
我认为问题在于最初按下 Caps-Lock 键,我在这里发现了一个类似的问题
我发现的另一个问题是该方法keyPressed
拼写错误,因为keyPresed
这也可能导致一些问题
推荐阅读
- reactjs - 将 usestate 作为组件之间的道具传递
- arrays - 如何将变量分配给通过 Angular 中的 WEB API 传递的数据?
- javascript - 导游需要角牧羊犬样本
- jwt - 使用 Google 对用户进行身份验证时如何通过 JWT 令牌获取用户角色
- amazon-web-services - SNS 的自我限制消息长时间未传递怎么办?
- rest - 从哪里获得休息服务的基本 URL?
- angular - 如何在移动设备中访问 VM ware localhost?
- javascript - 使用邮递员将标头发送到客户端后无法设置标头
- javascript - 如何将内容移动到 DOM 中的另一个位置然后放回原处?
- python - 有没有办法在 ubuntu 上使用 pywhatkit?