COURS
GUI (GRAPHICAL USER
INTERFACE)
AVEC
SWING
1
SWING VS AWT
Swing est construit au dessus de AWT
Swing est plus riche que AWT
AWT utilise des composants lourds (composants
utilisant des ressources système)
Swing utilise des composants légers sauf pour le
containers primaires (JFrame, JDialog, JApplet)
Swing est plus optimisé et plus rapide que AWT
2
COMPOSANT D’AFFICHAGE: ÉTIQUETTE
JLabel sous classe de JComponent
Exemple :
JLabel l1 = new JLabel (" Text ");
JLabel l2 = new JLabel (new ImageIcon (" splash.png " ));
JLabel l3 = new JLabel ("Image and Text", new ImageIcon
" splash.png ");
3
COMPOSANT DE CONTRÔLE: BOUTON
JComponent
Jcomponent
AbstractButton
AbstractButton
JButton
JButton
JCheckBox
JButton
JToggleButton
JRadioBotton
Exemple 1:
JButton b1 = new JButton (" Text ");
JButton b2 = new JButton (new ImageIcon (" icone.png " ));
JButton b3 = new JButton ("Image and Text", new ImageIcon
" icone.png ");
4
Advertisement
AUTRE EXEMPLE JRadioButton
Exemple 2:
JRadioButton b1 = new JRadioButton ("Bird ");
JRadioButton b2 = new JRadioButton ("Cat ");
JRadioButton b3 = new JRadioButton ("Dog");
JRadioButton b4 = new JRadioButton ("Rabbit ");
JRadioButton b5 = new JRadioButton ("Pig");
ButtonGroup grp = new ButtonGroup(); // Ce n’est pas un
Composant graphique
grp.add (b1);
grp.add (b2);
grp.add (b3);
grp.add (b4);
grp.add (b5);
b5.doClick(),
OBJET DE CONTRÔLE : CHAMPS DE SAISIE
JComponent
▪
JTextComponent
▪
JTextField
JPasswordField
JFormattedTextField
▪
▪
JTextTArea
JEditorPane
JTextPane
Exemple
OBJET DE CONTRÔLE : SÉLECTEUR DE
COULEUR
La classe JColorChooser sous classe de JComponent
Un sélecteur de coulour permet à l’utilisateur de choisir
une couleur
Ce composant affiche l’interface graphique utilisée par le
système d’exploitation pour la sélection d’une couleur
Exemple:
JColorChoser c = new JColorChoser ();
OBJET DE CONTRÔLE : POTENTIOMÈTRE
Classe JSlider sous classe de JComponent
Advertisement
Un potentiomètre est un composant permettant de
sélectionner une valeur numérique en déplaçant un curseur
avec la souris
Exemple :
JSlider js = new Jslider (Slider.HORIZONTAL, 0, 100, 60);
s.setPaintLabels (true) ; // étiquettes
s.setPaintTicks (true); // hachures
s.setMinorTicksSpacing (10);
s.setMajorTicksSpacing (20);
OBJET DE CONTRÔLE : SÉLECTEUR DE
FICHIER
La classe JFileChooser sous classe de JComponent
Un sélecteur de fichier permet à l’utilisateur de choisir
un un fichier
Ce composant utilise la boite de dialogue « Ouvrir » ou
« Enregistrer » du système d’exploitation
Exemple:
JFileChoser c = new JFileChoser ();
OBJET DE CONTRÔLE: LES MENUS
JComponent
JMenuBar
JAbstractButton
JMenuItem
JChekcboxMenuItem
JRadioButtonMenuItem
JMenu
JMenu
JMenuBar
JMenuItem
LES BORDURES
On peut modifier les bordures de tous les composants
graphiques
Utiliser la méthode public void setBorder (Border b) de la
classe JComponent
La classe BorderFactory fournit des méthodes statiques
retournant des objets Border
▪
Exemple :
JButton b1 = new JButton (" line border ");
Advertisement
b1.setborder (BorderFactory.createLineBorder (Color.black));
JButton b2 = new JButton (" etched border ");
b2.setborder (BorderFactory.createEtchedBorder ());
…
CONTENEURS DE HAUT NIVEAU: JFRAME
JFrame sous classe de java.awt.Frame
Pour fermer un JFrame :
public void setDefaultCloseOperation (int i)
▪ Exemple:
JFrame j = new JFrame ();
j. setDefaultCloseOperation (EXIT_ON_CLOSE);
Un JFrame est constitué de plusieurs parties superposées
CONTENEURS DE HAUT NIVEAU: JFRAME
4 comportements sont possibles lors de la fermeture de
la fenètre
• DO_NOTHING_ON_CLOSE
• HIDE_ON_CLOSE
• DISPOSE_ON_CLOSE
• EXIT_ON_CLOSE
import javax.swing.*;
public class Simple {
public static void main(String[] args) {
JFrame cadre = new JFrame("Ma fenetre");
cadre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
cadre.setSize(300, 200);
cadre.setVisible(true);
}
}
JFRAME
Le conteneur d'un JFrame n'est plus confondu avec le cadre lui-même.
➢Il possède une couche de contenu, dans laquelle on peut ajouter les
composants graphiques et dont on peut changer le gestionnaire de
présentation.
➢Cette couche est obtenue par la méthode getContentPane();
Avec AWT
Frame monFrame = new Frame ("Mon Frame");
Button monBouton = new Button ("Mon Bouton");
monFrame.add(monBouton);
Avec Swing
JFrame monFrame = new JFrame ("Mon Frame");
Advertisement
JButton monBouton = new JButton ("Mon Bouton");
Container panneauContenu = monFrame.getContentPane();
panneauContenu.add(monBouton);
CONTENEURS DE HAUT NIVEAU: JFRAME
(SUITE)
ContentPane : c'est dans celui-ci que sont placés les
composnats graphiques de l'utilisateur .
Exemple :
Pour ajouter des composants:
JFrame j = new JFrame ();
j.getContentPane(). add (..)
Ou
j. add (..) ; // Ajout directement dans le ContentPane
AUTRES CONTENEURS
Quelques classes
JDialog: Fenêtre de dialogue
JPanel : rassemble les composants
JScrollPane: Panel avec ascenseur
JTabbedPane: Panel avec onglets
LES LAYOUTS ?
Ce sont les Layouts de java.awt
▪ BorderLayout
▪ Flowlayout
▪ GridLayout
▪GridBagLayout
▪ CardLayout
▪…
Exemples:
A DÉCOUVRIR SEUL…
JProgressBar
JRadioButton
JCombox
JTree
JTable
JDesktopPane
…