Bonjour,
mon problème est le suivant:
Je veux me passer des JOptionPane (ils ont un bug pas encore corrigé à ce jour qui bloque mon appli).
J'ai pensé utiliser le GlassPane des JFrame et des JDialog, lorsque je veux envoyer une message à l'utilisateur ou lui poser une question, au lieu de lui donner un JOptionPane, je donne un JPanel au GlassPane de son JDialog, sur lequel je met un label et un bouton (voir plusieurs si je lui pose une Yes/No question par exemple).
Donc je suis sur l'EDT et je ne veux pas en sortir... Je voudrais en gros, rendre modal le glasspane.
Voici à peu prés mon code:
Je lance donc mon affichage, puis je me met en wait. Quand on cliquera sur le bouton du glasspane, on aura un notify qui me fera sortir du sommeil.
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 private void methode() { Object o=new Object(); System.out.println( "je vais afficher le glasspane" ); try { SwingUtilities.invokeLater( new Runnable() { @Override public void run() { getMonJDialog().afficherMonGlassPane(o); } } ); } catch ( Exception e ) { e.printStackTrace(); } o.wait();//Je fais un wait, le notify sera dans la methode actionPErformed du bouton se trouvant dans le glasspane System.out.println( "j'ai fermé le glasspane" ); }
Problème: ça freeze! le glasspane ne s'affiche jamais: l'EDT se bloque sur le wait et n'affiche jamais mon glasspane...
Une idée SVP?








Répondre avec citation





Partager