« Programmation Java Swing/Composants » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
m typo
Ligne 70 : Ligne 70 :
=== Taille et position ===
=== Taille et position ===


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 <code>java.awt.Rectangle</code>. Cette classe comporte quatre champs publics de type entier (<code>int</code>) : <code>x</code> et <code>y</code> pour la positon, et <code>width</code> et <code>height</code> pour la taille.
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 <code>java.awt.Rectangle</code>. Cette classe comporte quatre champs publics de type entier (<code>int</code>) : <code>x</code> et <code>y</code> pour la position, et <code>width</code> et <code>height</code> pour la taille.
{| style="padding: 1em; margin: 1em; border: solid black 2px;"
{| style="padding: 1em; margin: 1em; border: solid black 2px;"
|- style=" background: #c3c3c340;"
|- style=" background: #c3c3c340;"

Version du 22 mars 2021 à 18:12


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

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

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

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

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

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

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

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

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.