Bonjour, Je souhaitais réaliser une animation Java utilisant le module Swing dans laquelle un JLabel s’actualiser toutes les 200ms avec le temps qui changeait. J’ai donc écrit le code suivant mais il ne fonctionne pas. Le problème vient visiblement de la méthode repaint. Pourtant j’ai essayé de changer repaint en update ou paint en paintComponent et rien n’y fait… Merci d’avance pour votre réponse
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 | import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class Test extends JFrame implements Runnable{ private JPanel pan; private JLabel lbl; private int temps; private Thread anim; public Test() { setSize(300,300); pan = new JPanel(); lbl = new JLabel(""); pan.add(lbl); add(lbl); temps = 0; anim = new Thread(this); anim.start(); } public void paintComponent(Graphics g) { super.paint(g); lbl.setText("paint"); } public void repaint(Graphics g) { super.repaint(); lbl.setText(" "+temps); } public void run() { while (true) { try{ temps+=2; }catch(NullPointerException e) { } repaint(); try { Thread.sleep(200); } catch(InterruptedException e) { System.out.println(e); } } } public static void main(String [] args) { Test t= new Test(); t.setVisible(true); } } |
+0
-0