Vous êtes sur la page 1sur 6

TP2+TP3 Mme Chefrour.

Principaux composants graphiques

JLabel:

Font font1 = new Font ("Garamond", Font.ITALIC, 20);

JLabel label=new JLabel();

label.setFont(font1); //

label.setForeground(Color.black);

label.setPreferredSize(new Dimension(50,25));

label.setText("Message");

label.setHorizontalAlignment(JLabel.CENTER);

Une zone de texte : la plus simple et la plus utilisée repose sur l’objet JTextField. Ce dernier
construit un champ de saisie avec seule ligne dont la largeur est fixée par setColums. Il est préférable
de fixer la largeur du champ de saisie pour éviter des déformations lors du remplissage. Les
méthodes :

 setText(‘‘chaine’’) : définie une chaine de caractère dans la zone de texte en question;

 getText(): récupère la chaine de caractère (de type String) saisie dans la zone;

 setEditable(Boolean X): autorise (avec X=true) ou interdit (avec X=false) la modification


du contenu de la zone.

Un Bouton: le plus couramment utilisé est le JButton. Généralement, le texte affiché sur le bouton
est passé comme paramètre au constructeur. Toutefois, il est possible de le modifier à l’aide de la
méthode setText.

Exemple: Création d’une simple fenêtre avec un label+une zone de texte+un bouton

import javax.swing.*;

import java.awt.*;

public class Fenetre extends JFrame {

private JLabel label=new JLabel();

private JTextField entrée=new JTextField(15);

//Ou utliser setColumns(15) dans le constructeur

private JButton bouton=new JButton("OK");

public Fenetre() {

/**Définir un panel pour contenir les objets graphiques*/

JPanel panel=new JPanel();

//Label

Font font1 = new Font ("Garamond", Font.BOLD, 20); //Définir police+style

1
TP2+TP3 Mme Chefrour. A

label.setFont(font1); //Lui Associer le Font

label.setForeground(Color.black); //Couleur de l’écriture

label.setPreferredSize(new Dimension(50,25)); //Redimensionner la taille

label.setText("Pays :"); //Le texte de libellé

label.setHorizontalAlignment(JLabel.CENTER);//AlignementHorizontale centrée

//Zone de texte

entrée.setText("Algérie");

entrée.setHorizontalAlignment(JTextField.CENTER); //Aligner l'écriture au centre

//Le bouton

//redimensionner le bouton

bouton.setPreferredSize(new Dimension(100,50));

bouton.setToolTipText("Appuyez sur OK"); //InfoBulle

//Ajouter les composants au panel

panel.add(label);

panel.add(entrée);

panel.add(bouton);

/**Création des caractéristiques de la fenêtre **/

this.setTitle("Ma Fenêtre");

this.setLocationRelativeTo(null);

this.setContentPane(panel); //Associer le panel à la fenêtre

this.setVisible(true);

} public static void main(String[]A)

{ Fenetre fenetre=new Fenetre(); //Instancier l’objet fenetre

fenetre.pack();

Gestionnaire de disposition
But: Assurer la portabilité de l’application graphique tout en respectant les dispositions des éléments
graphiques lors de l’affichage dans différents systèmes.

=> Pour ce faire, Java propose des gestionnaires de disposition permettant de régler l’aspect
visuel des composants graphiques afin de définir leur emplacement puis les maintenir.

2
TP2+TP3 Mme Chefrour. A

 Dans certains cas, il est possible de se passer des gestionnaires de mise en forme pour le
placement des composants. Pour cela, il suffit de mettre le gestionnaire du contenant (i.e
panel) à null, puis ajouter les composants au conteneur en spécifiant leur position absolue et
leur taille voulue. Par exemple:

Panel.setLayout(null);

JButton ok = newJButton("OK");

ok.setBounds(x, y, width, height);

 Les principaux gestionnaires de disposition sont :

- FlowLayout - BorderLayout - BoxLayout

- GridLayout - GridBagLayout

FlowLayout

Le FlowLayout est le gestionnaire de mise en forme par défaut de JPanel.

 Aligne horizontalement les composants tout en réservant leur taille;


 Lorsque la ligne est atteinte (remplie), les composants suivants sont placés à la ligne suivante
. (Comme l’exemple précédent)

Exemple:

import java.awt.*;

import javax.swing.*;

public class Fenetre_FlowLayout extends JFrame {

private JLabel label=new JLabel();

private JTextField entrée = new JTextField();

private JButton Bouton1 = new JButton("Boutton1");

private JButton Bouton2 = new JButton("Boutton2");

3
TP2+TP3 Mme Chefrour. A

public Fenetre_FlowLayout()

{/**Définir un conteneur suivant la disposition FlowLayout**/

JPanel panel=new JPanel();

FlowLayout disposition=new FlowLayout();

//associer la disposition FlowLayout au conteneur panel

panel.setLayout(disposition);

/** création des composants graphiques sur le conteneur**/

label.setText("NOM : ");

panel.add(label);

entrée.setColumns(10);

panel.add(entrée);

panel.add(Bouton1);

panel.add(Bouton2);

/** Constructeur de fenêtre selon certaines caractéristiques et attributs**/

this.setTitle("Fenêtre avec FlowLayout");………………………………………………………..

/**Associer à la fenêtre le conteneur panel***/

this.setContentPane(panel);

public static void main(String[]args)

{ Fenetre_FlowLayout fen=new Fenetre_FlowLayout ();

fen.setVisible(true);}}

BorderLayout

Le BorderLayout est un gestionnaire qui décompose le conteneur en 5 zones: Centre, Nord, Sud,
Est, Ouest.

=> C’est un gestionnaire de mise en forme par défaut des JFrame;

=> Un composant est placé sur un conteneur en précisant la zone de son emplacement (exemple
NORTH pour le mettre dans la zone nord).

=> Ce gestionnaire modifie la taille des composants afin qu’ils prennent tout l’espace possible;

=> En cas de redimensionnement, seul le centre est redimensionné en hauteur et largeur.

4
TP2+TP3 Mme Chefrour. A

{/**Définir un conteneur suivant la disposition BorderLayout**/

JPanel panel=new JPanel();

BorderLayout disposition=new BorderLayout();

panel.setLayout(disposition);

/** création des composants graphiques sur le conteneur**/

Bouton3.setPreferredSize(new Dimension(100,100));

panel.add(Bouton3, BorderLayout.CENTER);

panel.add(Bouton1, BorderLayout.NORTH);

panel.add(Bouton2, BorderLayout.WEST);

panel.add(Bouton4, BorderLayout.EAST);

panel.add(Bouton5, BorderLayout.SOUTH);

/** Constructeur de fenêtre selon certaines caractéristiques et attributs**/

GridLayout

LeGridLayout arrange les composants sur une grille dont on spécifie le nombre de cases
(cellules) horizontales et verticales.

=> Chaque cellule est de taille identique.

=> Les composants sont ajoutés ligne par ligne à partir de la cellule du coin supérieur gauche.

5
TP2+TP3 Mme Chefrour. A

public Fenetre_GridLayout()

/**Définir conteneur suivant la disposition GridLayout**/

JPanel panel=new JPanel();

GridLayout disposition=new GridLayout(2,3);

disposition.setHgap(10);//10 pixels d'espace entre les colonnes (H :Horizontal)

disposition.setVgap(10);//10 pixels d'espace entre les lignes (V: Vertical)

panel.setLayout(disposition); //associer la disposition au conteneur panel

/** création des composants graphiques sur le conteneur**/

Bouton1.setPreferredSize(new Dimension(100,100));

panel.add(Bouton1);

panel.add(Bouton2);

panel.add(Bouton3);

panel.add(Bouton4);

panel.add(Bouton5);

/** Constructeur de fenêtre selon certaines caractéristiques et attributs**/

//Intituler la fenêtre

this.setTitle("Fenêtre avec GridLayout");…………………………………….

/**Associer à la fenêtre le conteneur panel***/

Vous aimerez peut-être aussi