Bonjour à tous,
J'ai un problème bizarre. Dans mon logiciel, j'ai un module d'édition avec un bouton SAUVER. quand je clique sur SAUVER j'ai une fenetre qui s'affiche (JDialog) avec un Jlabel = "Veuillez patienter..." pendant que je mes à jour tout un tas de trucs. Cette mise à jour s'effectue dans un thread que je lance quand je clique sur SAUVER. Quand je clique sur SAUVER juste avant de lancer le thread je fais .setVisible(true) à ma fenetre.
La mise à jour prend 3s max. La fenetre s'affiche mais le Jpanel ou Jdesktop ne s'affiche pas. Le thread arrive au bout de son execution et la fenetre se ferme.
Je voudrais que la fenetre s'affiche completement ***** alors.
le code de mon Jdialog est simple (j'utilise un JDesktopPane mais c t pour essayer si ca s'affichait plus vite ou pas qu'avec un Jpanel) :
Quand je clique sur sauver c'est très simple:
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 private class Patientez extends JDialog { private static final long serialVersionUID = 1L; private JDesktopPane jDesktopPane = null; private JLabel jLabel = null; public Patientez() { super(); initialize(); } private void initialize() { this.setSize(211, 60); this.setTitle("Mise à jour"); this.setContentPane(getJDesktopPane()); this.setLocationRelativeTo(this.getParent()); this.setAlwaysOnTop(true); } private JDesktopPane getJDesktopPane() { if (jDesktopPane == null) { jLabel = new JLabel(); jLabel.setBounds(new java.awt.Rectangle(41,20,134,26)); jLabel.setText("Veuillez patienter ..."); jDesktopPane = new JDesktopPane(); jDesktopPane.add(jLabel, null); } return jDesktopPane; } }
La methode Run de mon thread ce sont plein de boucle for.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if(e.getActionCommand().equals("editer_sauver")) { this.patientez.setVisible(true); maj.run(); ...
Ca a un peu le dont de m'énerver car j'ai le mauvais présentiment qu'il n'y a pas de solution.
peut etre faire un timer d'un demi seconde avant de lancer la thread pour laisser la Jdialog s'afficher ?
Partager