Bonjour,
j'essaie de comprendre comment on fait pour créer une interface graphique en java. J'ai donc décidé de suivre le cours de Baptiste Witch.
Or voilà le code qu'il propose pour créer une fenetre :
J'avoue qu'en voyant ça je ne comprend rien. On déclare des méthodes dans des méthodes et on déclare même une méthode dans l'argument d'une autre méthodepackage dvp.swing.bases.fenetres;
import javax.swing.JDialog;
import javax.swing.SwingUtilities;
public class TestJDialog {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){
public void run(){
//On crée une nouvelle instance de notre JWindow
JDialog window = new JDialog();
window.setSize(300, 200);//On lui donne une taille pour qu'on puisse la voir
window.setVisible(true);//On la rend visible
}
});
}
}. Donc j'ai tenté de simplifier ça de façon à ce que je comprenne ce que je fait. Parce que le code qu'il propose fonctionne, mais je ne comprend pas pourquoi et je ne veux pas utiliser un code que je ne comprend pas. J'ai donc réussi à obtenir exactement le même résultat en simplifiant de la manière suivante :
Là, c'est un code que je comprend et qui fait la même chose. Du moins, je pense, mais je m'interoge quand même parce que si l'auteur du tutorial a mis toutes les commandes que j'ai enlevées, il doit y avoir une raison.import javax.swing.JDialog;
public class Fenetre {
public static void main(String[] a){
Fenetre(300, 200);
}
public static void Fenetre(int largeur, int hauteur){
JDialog fenetre = new JDialog();
fenetre.setSize(largeur, hauteur);
fenetre.setVisible(true);
}
}
Mes questions sont donc les suivantes :
- A quoi sert le SwingUtilities.invokeLater et l'import qui va avec ?
- Peut on m'expliquer un peu le fonctionnement du code du tutorial ? Quelle méthode fait quoi ? et pourquoi s'imbriquent elles de cette façon ?
- Pourquoi faire si compliqué quand on peut faire simple ?
Merci.
Partager