Java JLabel don'的KeyListener;我不工作
我的代码有问题,当我按下向上或向下箭头时,什么也没有发生。 这是我的密码,对不起,我的英语。 这是球拍1的零件,球拍2的零件与此类似Java JLabel don'的KeyListener;我不工作,java,eclipse,keylistener,Java,Eclipse,Keylistener,我的代码有问题,当我按下向上或向下箭头时,什么也没有发生。 这是我的密码,对不起,我的英语。 这是球拍1的零件,球拍2的零件与此类似 //--->Racket 1 : Racket1.addKeyListener(this); Racket1.setBounds(50, 200, 16, 100); //<----- setBounds (Placer position du JLabel x,y + taille de la plateforme x,y)
//--->Racket 1 :
Racket1.addKeyListener(this);
Racket1.setBounds(50, 200, 16, 100); //<----- setBounds (Placer position du JLabel x,y + taille de la plateforme x,y)
Racket1.setBackground(Color.white);
Racket1.setOpaque(true);
Racket1.setFocusable(true); //<----- Permet d'utiliser KeyListener Pour un JLabel
Racket1.requestFocus();
您的问题可能是JLabel不是焦点所有者。默认情况下,JLabel不可聚焦。你需要打电话
yourLabel.setFocusable(true);
yourLabel.requestFocus();
然后它应该会工作。不要使用键盘侦听器。一次只能有一个部件有焦点,所以你只能移动一个球拍 相反,您应该使用
KeyBindings
<代码>键绑定用于将操作
绑定到击键
,组件不需要焦点
查看更多信息。
KeyboardAnimation.java
甚至有一个使用两个标签的示例。球拍的作用是什么?您可能需要更具体地了解其行为,以及您尝试了什么。你检查过keyPressed()方法是否被调用了吗?球拍应该是moove有一个pong gamemacserv的两个球拍我真的不明白你的问题是什么意思(我正在编程)我做到了,我的JLabel是可聚焦的,我使用了函数setFocusable和requestfocus。如果有两个球拍,你只能用这种方法移动一个球拍。不要使用KeyListener!
yourLabel.setFocusable(true);
yourLabel.requestFocus();