Interface graphique (GUI)

Création et affichage d'une fenêtre principale

Nous allons maintenant transformer la classe MaFenetre en une version personnalisée de fenêtre principale. Une fenêtre principale de base est un type JFrame dans Swing.
Pour cela on modifie la déclaration de la classe comme ceci :

public class MaFenetre extends JFrame {
 

Cette déclaration permet de disposer de toutes les possibilités offertes par la classe JFrame, et d'en ajouter de nouvelles. On dit que JFrame est la classe parente de MaFenetre, ou que MaFenetre est une classe enfant de JFrame.

Pour spécifier l'aspect et le contenu de notre fenêtre personnalisés, on va maintenant créer ce qu'on appelle un constructeur pour ce type de fenêtre . Ce constructeur va contenir tout ce qui devra être exécuté lorsqu'un programme créera une fenetre de type MaFenetre en utilisant l'instruction new.

Le constructeur porte le même nom que la classe et peut prendre des paramètres (c'est une sorte de méthode, mais sans indication de valeur de retour).
Sa déclaration commence donc ici par MaFenetre(){

A l'intérieur du constructeur on va mettre les instructions suivantes :

super();
pour appeler le constructeur de la classe parente JFrame.
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pour que la fermeture de la fenêtre ferme le programme qui l'a créée.
setVisible(true);
pour que la fenêtre soit visible.

setDefaultCloseOperation() et setVisible() sont des méthodes de la classe JFrame.

Pour l'instant, on n'a toujours pas vu de fenêtre, car on n'a pas encore créé de fenêtre de type MaFenetre , on a juste défini quelques unes de leurs propriétés.

Pour utiliser notre modèle de fenêtre, il faut créer une fenetre en appelant le constructeur de MaFenetre depuis une classe exécutable. On dit qu'on crée alors une instance de MaFenetre.
Ajouter au projet fenetres une nouvelle classe exécutable appelée EssaiFenetre contenant le code suivant :


public class EssaiFenetre {
    static MaFenetre fenetre;
public static void main(String[] args) {
fenetre=new MaFenetre();
    }
}
et l'exécuter. La ligne fenetre=new MaFenetre(); crée une instance, nommée fenetre, de la classe MaFenetre.

La fenêtre est pour l'instant, par défaut, toute petite, et vide puisqu'on n'y a rien mis.

 
Licence Creative Commons
licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 non transposé
Auteur : Nathalie Bonnin
Professeur de Physique, Chimie, Informatique au lycée La Martinière Monplaisir (Lyon 8ème)
Contact :
nathalie.bonnin (chez) scientillula.net
Licence Creative Commons
La totalité du contenu du site Scientillula.net appartient à Nathalie Bonnin et est mise à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 non transposé