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
Pointcodice: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(); } }
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){} }

Rispondi quotando
