SwingUtitilites.invokeLater() - Petite question de mise au point
Bonjour,
Je suis occupé de lire "Swing la synthèse" (V. Berthié et J.-B. Briaud) ed. Dunod
Dans un des derniers chapitres, il y à cet exemple :
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 void init() {
// Premiere partie
JComponent panneauAttente = creerPanneauAttente();
SwingUtilities.invokeLater( new Runnable() {
public void run() {
add(panneauAttente, BorderLayout.CENTER);
status.setText("Avant builder.getPanel()");
}
});
// Deuxième partie
long debut = System.currentTimeMillis();
JComponant panel = fabrique.getPanel(); /*note de moi : Traitement long */
long fin = System.currentTimeMillis();
// Troisième partie
SwingUtilities.invokeLater( new Runnable() {
public void run() {
remove(panneauAttente);
status.setText("Apres builder.getPanel() : " + (( fin-debut ) / 1000) + " s");
add(panel, BorderLayout.CENTER);
progress.setIndeterminate(false);
}
});
} |
Ils expliquent que ceci permet de faire executer la tâche longue ( fabrique.getPanel()) en dehors de l'EDT et que les deux blocs invokeLater permettent de rejoindre l'EDT.
Mais c'est un le contraire de ce qui est expliqué ici par GFX non ?