[JDialog] Problème avec l'aspect modal
Bonjour,
J'ai un problème avec un JDialog modal qui n'empêche pas l'execution du code situé après son affichage.
Ci dessous, la methode qui affiche ce popup et retourne le bouton appuyé.
Code:
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
|
public static int showConfirmationPopup(
final String message,
final Container parent) {
final JDialog dialog = new JDialog (getWindowOf(parent));
dialog.setUndecorated(true);
dialog.setModal(true);
dialog.setPreferredSize(new Dimension(400, 300));
final ConfirmationPopupPanel panel = new ConfirmationPopupPanel();
panel.setMsg(message);
panel.addActionOnYesButton(new AbstractAction("YES_ACTION") {
public void actionPerformed(ActionEvent e) {
panel.setReleasedButton(JOptionPane.YES_OPTION);
dialog.setVisible(false);
}
});
panel.addActionOnNoButton(new AbstractAction("NO_ACTION") {
public void actionPerformed(ActionEvent e) {
panel.setReleasedButton(JOptionPane.NO_OPTION);
dialog.setVisible(false);
}
});
dialog.getContentPane().add(panel);
dialog.pack();
dialog.setVisible(true);
return panel.getReleasedButton();
} |
Lors du premier appel à cette methode, tout se passe bien, le return n'est effectué qu'une fois la popup de confirmation fermée par l'appui sur l'un ou l'autre des deux boutons.
Par contre lors des appels suivant, le 'setVisible(true)' n'est plus bloquant et la methode retourne directement la valeur par defaut de getReleasedButton alors que la popup est toujours affichée (elle est pourtant bien modale au niveau IHM).
Avez vous des sugestions ?