salut
je suis entrain de developper une application java 6 en utilisant swing.
J'ai utilisé la bibliothéque swingx et on particulier JXLoginPane comme interface d'authentification.
Ce que je n'arrive pas à comprendre est comment se fait lacommunication entre EDT et le thread main: ce que j'ai tenu est qu'on lançant le main de l'application , c'est le thread main qui est lancé.
Voici mon code d'authentification
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
 
 
AuthentificationController loginService = new AuthentificationController();
DefaultUserNameStore userNames = new DefaultUserNameStore();
Preferences appPrefs = Preferences
				.userNodeForPackage(AuthentificationVue.class);
userNames.setPreferences(appPrefs.node("login"));
frame = JXLoginPane.showLoginFrame(
loginService, null, userNames);
frame.setTitle("Authentification");
frame.setIconImage(Images.application.getImage());
frame.getPanel().setMessage("Entrez votre Login et mot de passe");
			System.out.println("isEventDispatchThread1="+SwingUtilities.isEventDispatchThread());
			System.out.println("Thread1="+Thread.currentThread().getName());
frame.addWindowListener(new WindowAdapter() {
 
	public void windowClosed(java.awt.event.WindowEvent e) {
					 System.out.println("isEventDispatchThread2="+SwingUtilities.isEventDispatchThread());
					System.out.println("Thread2="+Thread.currentThread().getName());
			JXLoginPane.Status status = frame.getStatus();
                       // make sure the login was successful
			if (status == JXLoginPane.Status.SUCCEEDED)  {						
				AcceuilJFrame.getInstance();
			}
                        else {
				//System.out.println("Login Failed: " + status);
			}
				}
			});
			frame.setVisible(true);
J'ai constaté que le THread EDT est lancé dans le listener frame.addWindowListener (sans même que je précis),mais mon probléme vient maintenant:lorsque l'authentification réussit, je fai appele à l''interface principale de mon application(AcceuilJFrame.getInstance()),depuis ce moment j'ai constaté que dans toute mon application c'est le Thread EDT qui est exécuté!
Comment éviter ce probléme?
Comment je puisse faire appel , dans des traitements métiers ,au thread main.