Java 使用KeyListener可以更好地进行JLabel移动
我在使用KeyListeners移动JLabel时遇到了一个小问题。当我单击一个键移动标签时,它会移动一点,暂停一秒钟,然后移动。我怎样才能使我的动作更流畅Java 使用KeyListener可以更好地进行JLabel移动,java,swing,jlabel,keylistener,Java,Swing,Jlabel,Keylistener,我在使用KeyListeners移动JLabel时遇到了一个小问题。当我单击一个键移动标签时,它会移动一点,暂停一秒钟,然后移动。我怎样才能使我的动作更流畅 frame.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e) { if(e.getKeyChar() == 'w'){ moveY -= 10; label.setLocation(m
frame.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e) {
if(e.getKeyChar() == 'w'){
moveY -= 10;
label.setLocation(moveX, moveY);
}
if(e.getKeyChar() == 'a'){
moveX -= 10;
label.setLocation(moveX, moveY);
}
if(e.getKeyChar() == 's'){
moveY += 10;
label.setLocation(moveX, moveY);
}
if(e.getKeyChar() == 'd'){
moveX += 10;
label.setLocation(moveX, moveY);
}
}
});
JFrame
从不对KeyEvent
侦听的KeyListener
JFrame
不可聚焦JComponent
,您需要使用可聚焦contianer e,g,JPanel
,但同样是错误的决定,因为需要设置pernament Focus-setFocusable(true)
Swing JComponents
使用KeyListener
,使用尽可能高的抽象,使用KeyBindings
(在此处搜索代码示例)JFrame
从不对KeyEvent
侦听的KeyListener
JFrame
不可聚焦JComponent
,您需要使用可聚焦contianer e,g,JPanel
,但同样是错误的决定,因为需要设置pernament Focus-setFocusable(true)
Swing JComponents
使用KeyListener
,使用尽可能高的抽象,使用KeyBindings
(在此处搜索代码示例)