GUIでランダムなことをしていたところ、この問題に遭遇しました.右矢印キーを押すと、長方形は実際にX軸上を移動しますが、移動距離は一定ではありません.かなり速く上昇し、押すたびに長方形が大きく動きます.私の最近のコード行X=X+1
はかなりうまくいくように見えました.Hereは私のコードです:
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.*;
public class Buffer extends JPanel implements KeyListener{
public static JFrame frame;
public int x;
public void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.red);
g.fillRect(x,0,20,20);
frame.addKeyListener(this);
}
public static void main(String args[]){
Buffer z=new Buffer();
frame=new JFrame();
frame.setSize(500,500);
frame.setVisible(true);
frame.setFocusable(true);
frame.add(z);
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_RIGHT){
x=x+1;
repaint();
}
}
}