Bonjour,

je post encore un message là dessus parce que j'y comprend rien et j'ai donc besoin d'aide personalisé si je veux que mon appli marche, désolé.

alors vois mon code actuelle

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
public void actionPerformed(ActionEvent e){
    File file = new File(fileField.getText());
 
    if (file==null || (!file.exists())) {
	stateLabel.setForeground(Color.RED);
        stateLabel.setText("!!! write a good path !!!!");
    } else {
	// preferences
	app.getClientPreferences().setFile(file);
        app.getClientPreferences().setFileFormat(ClientPreferences.XYZ_FORMAT);
        app.getClientPreferences().setMode(ClientPreferences.FILECONNECTIONBUFFERED);
 
        app.getTestControlDraw().setControlEnabled(true);
        app.getTestDraw().initDrawing();
        // display info
        SwingUtilities.invokeLater(new Runnable () {
	    public void run() {
	        stateLabel.setForeground(Color.BLACK);
	        stateLabel.setText("Bufering");
	    }
        });
        // disconnect a possibly connected trajPanel or testPanel
        app.getTrajPanel().disconnect();
        app.getTestPanel().disconnect();
 
        // sleep to leave the time of the trajHandler to construct its first traj.	
        Thread thread = new Thread(new Runnable() {
	    public void run(){
	        try{
		    while(app.getTrajHandler().getUpdated()==0){}
                    app.getTestDraw().setMaxMinTime(app.getTrajHandler().getMaxTime(),         app.getTrajHandler().getMinTime());
	            app.getTestControlDraw().initPlaying();
        	    // System.out.println("minTime: "+trajDraw.getMinTime()+" currentTime: "+trajDraw.getCurrentTime()+" maxTime: "+trajDraw.getMaxTime());
		    app.getTestDraw().setLocalOnly(false);					                    app.getTestControlDraw().play();
		    app.setTestPanel();
	        }catch(Exception e){
 
	        }
            }
        });
        thread.start();
        this.setVisible(false);
    }
}
en gros ce que je veut faire c'est :

- bufferiser des informations et continuer le traitement une fois que c'est bon (une fois que app.getTrajHandler.getUpdated()!=0)
- afficher sur un composant swing, stateLabel qui est un JLabel, une info concernant la bufferisation.

Ce que ça fait maintenant :
- une fois que je clique sur le bouton, le bouton reste enfoncé et je vois pas le changement du JLabel. Une fois que c'est bufferisé, l'appli reprend son cours et tout va bien.

J'ai essayé de suivre les conseil avec les invokeLater et mettre des thread, mais je crois que ça me dépasse un peu pour le moment c'est choses-là alors si quelqu'un pouvait me dire ce que je dois faire, ça serait super sympa !

merci pour l'attention.