Il mio problema riguarda la velocit� con cui il mio JPanel si muove alla pressione di un tasto da me definito. Si muove troppo lentamente nonostante abbia impostato la pausa dell'esecuzione a un millisecondo[Thread.sleep(1)]. Il programma � composto dal main che gestisce il JFrame principale e da un'altra classe che estende il JPanel, chiamata Point.
Main
codice:
import javax.swing.JFrame;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
public class Main extends JFrame{
Point point=new Point();
public Main(){
super("PROVA");
setExtendedState(JFrame.MAXIMIZED_BOTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
addKeyListener(point);
add(point);
while(true){
repaint();
}
}
public static void main(String[] args){
new Main();
}
}
Point
codice:
import javax.swing.JPanel;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import java.awt.Graphics;
import java.awt.Color;
public class Point extends JPanel implements KeyListener{
private int x=10;
private int y=10;
public void paintComponent(Graphics g){
g.setColor(Color.BLACK);
g.fillRect(x, y, 20, 20);
}
public void keyPressed(KeyEvent e){
switch(e.getKeyChar()){
case('d'):
x++;
try {
Thread.sleep(1);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
}
public void keyReleased(KeyEvent e){}
public void keyTyped(KeyEvent e){}
}