Bonjour,
Ça n'a une importance que si vous voulez exécuter le code Swing et le code du modèle (des données) dans des threads séparés.
Si tout se passe dans le thread EDT (plus simple à mettre en œuvre mais bloque l'UI pendant le traitement des données ce qui n'est pas forcément agréable pour l'utilisateur si les traitements sont longs) autant prendre la méthode la plus simple (la 1ère).
Ceci-dit, dans n'importe quel cas si l'initialisation de la vue ET du modèle sont longues, vous pouvez gagner du temps au démarrage en les parallélisant, par 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
|
public static void main(String[] args) {
final Fenetre[] fenetre = new Fenetre[1];
SwingUtilities.invokeLater(new Runnable() {
public void run() {
fenetre[0] = new Fenetre(); // longue opération
}
});
final GestionDonnees gd = new GestionDonnees(); // longue opération
SwingUtilities.invokeLater(new Runnable() {
public void run() {
fenetre[0].setGestionDonnees(gd);
fenetre[0].setVisible(true);
}
});
}
// dans la classe "Fenetre"
public void setGestionDonnees(GestionDonnees gd) {
this.gd = gd;
// ...
} |