[I]Bonjour,
Dans le cadre d'un petit programme, j'a réalisé une application qui est censée afficher alternativement une image puis une autre image. Pour cela j'ai utilisé l'instruction Thread.sleep() pour que le programme affiche une image, attende 1 seconde, affiche une autre image, attende 1 seconde...
Lorsque j'exécute ce programme à part, tout se passe bien, mais lorsque j'intègre le code du programme dans un autre programme (qui est en fait le menu du logiciel), le Thread.sleep ne marche pas, et au lieu d'afficher alternativement les deux images, la fenêtre reste blanche au début puis affiche seulement la dernière image.
Voici le code source du programme qui fonctionne correctement quand il est lancé à part :
Les classes Panneau et Panneau2 servent seulement à afficher l'une ou l'autre des deux images.
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 public class Fenetre extends JFrame { public Fenetre() { new JFrame(); this.setTitle("Série d'images"); this.setSize(500, 500); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); this.setContentPane(new Panneau2()); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } this.validate(); this.setContentPane(new Panneau()); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } this.validate(); this.setContentPane(new Panneau2()); } }
Et voici comment j'intègre le code précédent au code du menu (je ne mets que la partie du code qui correspond car le code entier est trop long) :
Je ne sais pas à quel niveau se situe le problème, mais il est possible qu'il y ait des erreurs liées au fait que je débute en java, donc merci de me signaler si quelque chose ne va pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public static class Test extends JPanel implements ActionListener{ public void actionPerformed (ActionEvent e){ fenetre.dispose(); new Fenetre(); } }
Je vous remercie de votre aide.
Partager