Bonjour a tous,
Je suis confronté à un problème que je ne comprends pas trop.
Ce que j'essaie de faire me parait simple mais apparemment c'est trop compliqué pour moi !
J'appelle une JDialog qui fait une requete http et qui s'affiche une fois la réponse reçu.
En attendant la réponse j'aimerais afficher une JWindow avec un gif d'attente qui montre que l'appli travaille.
Problème : ma JWindow appellé par ma JDialog ne s'affiche qu'une fois que cette dernière est affichée et donc trop tard...
J'aimerais donc que ma JWindow n'attende pas l'affichage de la JDialog pour s'afficher elle même.
A la base je ne voulais pas m'encombrer avec la création d'un thread. Je suppose que ca réglerait le problème mais je ne comprends pas trop pourquoi la JWindow attend la JDialog ????
Voila mon code simplifié (avec un sleep a la place de ma requete HTTP) :
Merci pour votre aide.
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 public class TestDialog extends JDialog { public TestDialog(Window arg0, String arg1) { super(arg0, arg1); this.setSize(new Dimension(200, 200)); this.setLocationRelativeTo(null); JWindow tWnd = new JWindow(arg0); tWnd.setSize(70, 70); tWnd.getContentPane().setBackground(Color.BLACK); JPanel imagePanel = new JPanel(); ImageIcon image = new ImageIcon(getClass().getResource("/load.gif")); JLabel imageLabel = new JLabel(image); imageLabel.setSize(48,48); imagePanel.add(imageLabel); tWnd.getContentPane().add(imagePanel,BorderLayout.CENTER); tWnd.setLocationRelativeTo(null); tWnd.setVisible(true); try { Thread.sleep(4000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } // tWnd.dispose(); this.setVisible(true); } }
Partager