Programmation Java Swing/Composants

Un livre de Wikilivres.
Aller à la navigation Aller à la recherche



De manière générale, un composant dans une interface graphique possède une zone rectangulaire permettant d'afficher une ou plusieurs informations et permet à l'utilisateur d'interagir avec lui en utilisant la souris ou le clavier.

Quelques composants Swing dans une fenêtre

Divers composants[modifier | modifier le wikicode]

Cette section liste brièvement quelques composants Swing décrits plus en détails dans les sections suivantes.

JLabel
Ce composant permet d'afficher du texte et une icône.
JButton
Ce composant permet de déclencher une action par un clic de souris.
JTextfield
Un champ de saisie de texte simple.
JScrollbar
Une barre de défilement.
JTextArea
Une zone de saisie de texte.
JTextPane
Une zone d'affichage ou de saisie de texte formaté.
JPanel
Un conteneur générique.
JScrollPane
Un conteneur permettant de faire défiler le contenu du composant (la vue) lorsque sa taille dépasse les limites du conteneur.

Architecture logicielle[modifier | modifier le wikicode]

Les composants Swing utilisent l'architecture MVC (modèle vue contrôleur) :

  • La vue (view en anglais) contient la présentation de l'interface graphique.
La vue est gérée par le composant Swing, par exemple : JTable, JTree...
  • Le modèle (model en anglais) contient et gère les données à afficher.
Le modèle est associé au composant : JTableModel, JTreeModel...
  • Le contrôleur (controller en anglais) contient la logique concernant les actions effectuées par l'utilisateur.
Le rôle du contrôleur est réparti entre le code du composant définissant un comportement interne et les écouteurs d'évènements définis par l'application.

Taille et position[modifier | modifier le wikicode]

En général et par défaut, la taille et la position des composants dans un conteneur sont définies par un gestionnaire de disposition des composants. Elles ne peuvent donc être modifiées qu'en cas d'absence de gestionnaire de disposition (setLayout(null)). Cependant, il est recommandé d'utiliser l'un des gestionnaires de disposition des composants pré-existants.

Position[modifier | modifier le wikicode]

Comme en AWT, la position d'un composant est définie par deux coordonnées x et y, qui peuvent être représentées par un objet de classe java.awt.Point. Cette classe comporte deux champs publics x et y de type entier (int).

void setLocation(int x, int y) Cette méthode définit les coordonnées horizontales et verticales (respectivement) du coin supérieur gauche du composant. Les coordonnées sont relatives au conteneur ; c'est à dire que (0,0) correspond au bord supérieur gauche du conteneur, éventuellement espacé de la largeur du bord du conteneur.
void setLocation(Point p) Cette méthode définit les coordonnées en utilisant un objet de classe java.awt.Point.
Point getLocation() Cette méthode retourne la position du composant.

Taille[modifier | modifier le wikicode]

La taille d'un composant est définie par la largeur (width en anglais) et la hauteur (height en anglais), qui peuvent être représentées par un objet de classe java.awt.Dimension. Cette classe comporte deux champs publics width et height de type entier (int).

void setSize(int width, int height) Cette méthode définit la taille du composant.
void setLocation(Dimension size) Cette méthode définit la taille en utilisant un objet de classe java.awt.Dimension.
Dimension getSize() Cette méthode retourne la taille du composant.

Utiliser un objet au lieu de spécifier directement les valeurs permet de réutiliser les mêmes valeurs pour d'autres composants, ou pour définir la taille minimales, maximales et préférées d'un composants, ou de réutiliser les valeurs retournées par un composant.

Taille et position[modifier | modifier le wikicode]

La taille et la position peuvent être définies en une fois en utilisant les méthodes ci-dessous, soit en spécifiant les 4 valeurs, soit en utilisant un objet de classe java.awt.Rectangle. Cette classe comporte quatre champs publics de type entier (int) : x et y pour la position, et width et height pour la taille.

void setBounds(int x, int y, int width, int height) Cette méthode définit la taille et la position du composant.
void setBounds(Rectangle bounds) Cette méthode définit la taille et la position en utilisant un objet de classe java.awt.Rectangle.
Rectangle getBounds() Cette méthode retourne la taille et la position du composant.

Propriétés d'apparence[modifier | modifier le wikicode]

Certaines propriétés communes aux composants changent leur apparence :

void setBackground(Color c) / Color getBackground()
Couleur de fond du composant.
void setForeground(Color c) / Color getForeground()
Couleur de premier plan, utilisée pour le texte.
void setFont(Font f) / Font getFont()
Police de caractères par défaut pour le texte.
void setText(String s) / String getText()
Texte affiché (label, bouton, champ de saisie, ...).
void setBorder(Border b) / Border getBorder()
Ajoute un espace autour du composant pour y dessiner une bordure. La classe BorderFactory définit des méthodes statiques permettant de créer des bordures.
void setTooltipText(String s) / String getTooltipText()
Texte affiché temporairement au survol de la souris sur le composant.

JLabel[modifier | modifier le wikicode]

Ce composant permet d'afficher du texte et une icône.

JButton[modifier | modifier le wikicode]

Ce composant permet de déclencher une action par un clic de souris.

JTextfield[modifier | modifier le wikicode]

Un champ de saisie de texte simple.

JScrollbar[modifier | modifier le wikicode]

Une barre de défilement.

JTextArea[modifier | modifier le wikicode]

Une zone de saisie de texte.

JTextPane[modifier | modifier le wikicode]

Une zone d'affichage ou de saisie de texte formaté.

JPanel[modifier | modifier le wikicode]

Un conteneur générique.

JScrollPane[modifier | modifier le wikicode]

Un conteneur permettant de faire défiler le contenu du composant (la vue) lorsque sa taille dépasse les limites du conteneur.