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) { } }






Répondre avec citation
Partager