Interface graphique (GUI)

Ajout d'autres éléments dans la fenêtre.

Ajout d'un "panneau" (panel) servant de fond pour les autres éléments.

Cette étape n'est pas obligatoire mais elle contribue à l'esthétique de la fenêtre.
On ajoute dans le constructeur de MaFenetre :
   JPanel panneau_fond=new JPanel();
   panneau_fond.setBackground(new Color(64,125,125));
   getContentPane().add(panneau_fond);

On peut voir que le panneau s'ajuste automatiquement pour remplir tout le reste de la fenêtre, puisqu'il en est l'unique élément.

Remarque : l'instruction new Color (64,125,125) crée une nouvelle instance de la classe Color. Comme cette instance ne sera utilisé qu'à cette endroit-là, on la crée "sur place" sans même lui donner de nom. : on dit qu'on crée une instance anonyme.
On aurait pu remplacer la ligne panneau_fond.setBackground(new Color(64,125,125)); par

Color couleur=new Color(64,125,125); 
panneau_fond.setBackground(couleur);
mais la variable couleur aurait alors été conservée en mémoire alors qu'elle ne servira plus jamais.
L'utilisation d'instances anonymes lorsque c'est possible est donc à privilégier et sera retrouvée plus loin dans ce tutoriel.

JLabels (étiquettes)

Les éléments de type JLabel permettent d'ajouter des textes . Dans le constructeur, ajouter les lignes
         
          JLabel texte=new JLabel("Bonjour tout le monde!");
          texte.setOpaque(true);
          texte.setBackground(new Color(64,125,125));
          panneau_fond.add(texte);
          panneau_fond.add(new JLabel(" blablabla "));

On a ici deux exemples différents de création de d'instances de JLabel.

    La première instance de JLabel, appelée texte, est déclarée et créée suivant une méthode classique
  • Elle est déclarée, nommée ("texte") et créée en utilisant new et le constructeur de JLabel.
  • Ensuite (facultativement) on rend son fond opaque, avant de modifier sa couleur de fond.
  • Enfin, on l'ajoute au panneau.
    En l'ayant créé de cette façon, il sera possible au programme d'agir ultérieurement sur le JLabel texte.

L'nstance de JLabel (contenant le texte "blablabla") est par-contre une instance anonyme. Du coup, elle est inaccessible au programme une fois mis en place.

La mise en place des composants dans une fenêtre obéit à une logique d'emboîtements successifs: ici on place des labels JLabel dans le panneau JPanel panneau-_fond, qui avait lui même été placé dans la fenêtre JFrame MaFenetre. De même à la page précédente on avait placé un menu JMenu dans une barre de menu, puis ajouté des éléments de menu JMenuItem.
 
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é