Interface graphique (GUI)

Fenêtre exécutable

Les programmes écrits précédemment utilisaient systématiquement deux classes : une classe dérivant de JFrame et décrivant la fenêtre, et une classe exécutable dans la méthode main de laquelle on créait les instances de la précédente.

Pour un programme simple il peut être pratique de réunir les deux fonctions dans une même classe, en créant une fenêtre exécutable : il suffit pour cela d'écrire une classe dérivant de JFrame et de lui ajouter une méthode main .
Exemple :

import javax.swing.*;
import java.awt.Color;
public class Autofenetre extends JFrame {
    String titre="Fenêtre exécutable";
    JTextField ligne_de_saisie;
    JPanel fond;
    
	Autofenetre(){
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLocation(400,400);
		setTitle(titre);
		fond=new JPanel();
		add(fond);
		ligne_de_saisie=new JTextField(30);
		fond.add(ligne_de_saisie);
		setVisible(true);
		pack();
	}
	
	public static void main(String[] args) {
		Autofenetre fenetre=new Autofenetre();
		fenetre.ligne_de_saisie.setText("Voilà ce que j'ai à dire");
		fenetre.fond.setBackground(Color.CYAN);

	}
}

La classe Autofenetre possède un constructeur et une méthode main dans laquelle une instance de la classe est créée, afin d'obtenir une fenêtre. Cette instance est nommée (fenetre) afin de pouvoir être manipulée par la suite.

On peut aussi dans le main créer une instance anonyme d'Autofenetre en écrivant simplement la ligne new Autofenetre(). On ne pourra alors pas accéder à ses champs et méthodes depuis le main.

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é