Bonjour,
j'essaie de programmer un JPanel, qui lorsqu'il est affiché, bloque le traitement de la méthode qui a demandé son affichage.
Ceci doit être maintenu tant que l'utilisateur n'a pas appuyé sur un bouton spécifique du JPanel.
C'est un peu comme si ce JPanel était modal, ou faisait office d'une JOptionPane
L'architecture ressemble un peu à çà:Ailleurs, la classe du JPanel:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class maClassePrincipale() { cPanelModal lePanel = new cPanelModal(); blabli blabla /.../ lePanel.affichePanelModal(); /.../ }Evidemment, la boucle do/While bloque tout, y compris le traitement au sein de la classe du panneau modal.
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 public class cPanelModal extends JPanel { boolean reponse_actionnee; /.../ public void affichePanelModal() { // Traitement pour l'affichage des composants du panel /.../ reponse_actionnee = false; do {} // Boucle de blocage d'attente de réponse while( !reponse_actionnee ); } /.../ private class ActionBoutonReponse extends AbstractAction { /.../ @overide public vois actionPerformed( ActionEvent AE ) { /.../ reponse_actionnee = true; // Débloquera la boucle d'attente de réponse } } }
Je cherche du côté des Thread et Cie, des InvokeLater() et autres..., pas moyen de trouver mon bonheur.
Y a-t-il une solution ?
Partager