JDialog : fonctionnement?
Salut,
Je ne comprends pas le fonctionnement de JDialog vis-à-vis de l'EDT.
En effet, si dans un actionPerformed (lors du clic sur un bouton) on crée un JDialog modal, les instructions après ce jdialog ne seront exécutées que lorsque le jdialog sera fermé.
Donc, en théorie, l'EDT est bloqué.
Comment ça se fait que justement, il n'est pas bloqué et que tout fonctionne?
Un petit exemple (le code est pas très lisible, mais c t pour faire le moins de lignes possible) :
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
| public class TestJDialog {
public static void main(String... args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
final JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(100, 100, 200, 100);
JButton but = new JButton("Clic");
frame.getContentPane().add(but);
but.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("avant le dialog");
JDialog dial = new JDialog(frame, true);
dial.setBounds(50, 50, 50, 50);
dial.setVisible(true);
System.out.println("après le dialog");
}
});
frame.setVisible(true);
}
});
}
} |
"après le dialog" est affiché uniquement une fois qu'on a fermé le JDialog...