gpt4 book ai didi

java - mac os 按键监听器不工作

转载 作者:行者123 更新时间:2023-12-01 22:46:10 26 4
gpt4 key购买 nike

我的 java keylistner 遇到问题。我无法将其设置为工作。我尝试了多种方法,但我的窗口似乎没有获得焦点。

代码如下(部分)。

public class TicTacTowerShooter extends JPanel implements Runnable,KeyListener {
/**
*
*/
int queenArrayIndex = 0;
TexturePaint tp;
private static final long serialVersionUID = 1L;
private BufferedImage biCastle = new BufferedImage(1024, 1024, BufferedImage.TYPE_INT_RGB);
private BufferedImage biChar = new BufferedImage(50, 50, BufferedImage.TYPE_INT_RGB);
Thread thread;
int posCharX = this.getWidth()/2;
int posCharY;

Shape s;


URL url;
Snakes snakes = new Snakes();


public TicTacTowerShooter(){
setPreferredSize(new Dimension(1024,1024));
setBackground(Color.blue);
thread = new Thread(this);
thread.start();
try{
url = getClass().getClassLoader().getResource("Images/castle.jpg");
biCastle = ImageIO.read(url);
url = getClass().getClassLoader().getResource("Images/shooter.png");
biChar = ImageIO.read(url);
}catch(IOException e){
e.printStackTrace();
}

this.setFocusable(true);
addKeyListener(this);

}

然后在 keyListener 方法中,我只有(在所有要测试的方法中)一个输出表明它正在工作。

非常感谢您的帮助。

致以诚挚的问候。

最佳答案

  1. 您只能请求焦点集中在可见 GUI 上的可见组件上。因此,您无法在构造函数中请求焦点。

  2. 无论如何,您都不应该使用 KeyListener。 Swing 被设计为与Key Bindings 一起使用。阅读 Swing 教程中关于 How to Use Key Bindings 的部分。使用键绑定(bind)时,组件并不(总是)需要获得焦点来响应键绑定(bind)。

关于java - mac os 按键监听器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25332230/

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