gpt4 book ai didi

java - 按键监听器不起作用

转载 作者:行者123 更新时间:2023-12-02 03:13:00 25 4
gpt4 key购买 nike

我有以下两个类,主类(SamG)和Panll类。我已经在 Panll 类中实现了 KeyListener,但它似乎不起作用。

public class SamG {
public static void main(String[] args) {
JFrame jf = new JFrame("My APP");
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setSize(800, 400);
jf.setVisible(true);
jf.pack();
jf.setContentPane(new Panll());
}
}

public class Panll extends JPanel implements KeyListener {
int x=100,y=100;
boolean run=true;
Panll() {
addKeyListener(this);
}

@Override
public void paint (Graphics g) {
super.repaint();
g.clearRect(0, 0, 800, 400);
update();
draw(g);
try {
Thread.sleep(17);
} catch (InterruptedException ex) {
Logger.getLogger(Panll.class.getName()).log(Level.SEVERE, null, ex);
}
}

public void update(){
x++;
y++;
}

public void draw(Graphics g){
g.drawOval(x, y, 100, 100);
}

@Override
public void keyTyped(KeyEvent e) {
}

@Override
public void keyPressed(KeyEvent e) {
System.out.println(e.getKeyChar());
}

@Override
public void keyReleased(KeyEvent e) {
}
}

最佳答案

如果没有使用 setFocusable(true); 明确允许 JPanel,则无法将其聚焦。。如果添加这一行,您可以将注意力集中在 JPanel 上。如果您按下任何按钮,KeyListener 就可以正常工作

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

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