COURS SUR SWING

Programmation, Interface Graphique · course

Voir tous les documents en programmation

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

Publicité

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

Publicité

 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 ");

Publicité

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");

Publicité

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

…