Bonjour/Bonsoir,

Pour m'occuper, je suis entrain de réaliser une petite application JAVA qui permet de déplacer avec certaine touche un rectangle bleu situé à l'écran.

J'ai réussie à faire ma JFrame avec le rectangle bleu, mais je n'arrive pas à faire déplacer le rectangle avec les touches. Pouvez-vous m'indiquer ou ce trouve l'erreur dans mon code.

Merci.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
public class Interface extends JPanel implements KeyListener{
 
	public static JFrame jf = new JFrame();
	static int width = 720;
	static int height = 480;
	static String title = "Moteur JFrame";
	public int x = 50;
	public int y = 50;
 
	public static void main(String[] args) {
		jf.setResizable(false);
		jf.setTitle(title);
		Interface i = new Interface();
		jf.add(i);
		jf.setSize(width, height);
		jf.setLocationRelativeTo(null);
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    jf.setVisible(true);
 
		TimerTask task = new TimerTask()
		{
			@Override
			public void run() 
			{
				jf.repaint();
			}	
		};
 
		Timer timer = new Timer();
		timer.scheduleAtFixedRate(task, 0, 20);	
	}
 
	public void Interface(){
		addKeyListener(this);
	}
 
 
	public void paintComponent(Graphics g){
		super.paintComponents(g);
 
		g.setColor(Color.BLUE);
		g.fillRect(x, y, 20, 20);
	}
 
	@Override
	public void keyPressed(KeyEvent e) {
		if(e.getKeyCode() == KeyEvent.VK_RIGHT){
 
			System.out.println("Key Pressed: RIGHT");
			x++;
 
		}else if(e.getKeyCode() == KeyEvent.VK_LEFT){
 
			System.out.println("Key Pressed: LEFT");
			x--;
 
		}else if(e.getKeyCode() == KeyEvent.VK_UP){
 
			System.out.println("Key Pressed: UP");
			y++;
 
		}else if(e.getKeyCode() == KeyEvent.VK_DOWN){
 
			System.out.println("Key Pressed: DOWN");
			y--;
 
		}
	}
 
	@Override
	public void keyReleased(KeyEvent e) {
 
 
	}
 
	@Override
	public void keyTyped(KeyEvent e) {
 
	}
}