Java 07
Java 07
Les classes de la plupart des composants Swing commencent par la lettre 'J'
et se distinguent ainsi des composants AWT correspondants :
• Composant 'Bouton' AWT : Button
• Composant 'Bouton' Swing : JButton
Architecture Swing
Principes de base
Principes de base
v Des composants graphiques
(exemple: JFrame, JButton …)
• Hiérarchie de classes
v Des événements et les actions à effectuer
(exemple presser un bouton)
v (Et d'autres choses…)
SWING
❚ Méthode de construction :
❙ Une plaque de base
❙ On ajoute des briques prédéfinies par dessus
❚ Modèle-Vue-Contrôleur
❙ modèle : les données à afficher
❙ vue : représentation graphique de ces données
❙ contrôleur : traite des interactions du composant avec l’utilisateur
❙ Avantages
❘meilleure modularité
❘plusieurs vues distinctes pour un même modèle
❘possibilité de modifier l’implémentation d’un modèle (optimisation,
réorganisation, ...) sans rien changer aux vues et aux contrôleurs.
public Fenetre(){
//…
combo.setPreferredSize(new Dimension(100, 20));
combo.addItem("Option 1");
combo.addItem("Option 2");
combo.addItem("Option 3");
combo.addItem("Option 4");
//…
}
}
pannel.add(testField1);
f.getContentPane().add(pannel);
f.setVisible(true);
}
}
pannel.add(onglets);
f.getContentPane().add(pannel);
f.setVisible(true); } }
❚ Que se passe t il ?
❙ quand on appuie sur un bouton,
❙ quand on ferme une fenêtre,
❙ quand on bouge la souris …
❚ Un événement contenant le lieu, la nature et l’objet
« actionné » est créé par le système graphique. Cet événement
est différent selon qu’il s’agit d’un clic sur un bouton, le
déplacement de la souris, etc…
❚ Le « dispatcher » envoie cet événement aux objets qui se sont
déclarés intéressés par cet événement
❚ Méthodes utiles
❙ String getActionCommand() : retourne la chaîne associée à
l'évènement
❙ int getModifiers() : entier contenant les touches enfoncées par
l'utilisateur (SHIFT,CTR)
❙ Object getSource() : composant émettant l'événement
❙ int getID() : retourne le type de l’événement
❙ long getWhen() : retourne le temps écoulé depuis l’apparition de
l’évènement
AWT et Swing 56
Les actions sur une fenêtre
import javax.swing.*; import java.awt.*; import java.awt.event.*;
class Ecouteur1 {
private JButton button; JFrame frame;
public Ecouteur1 () { frame=new JFrame("exemple ecouteur 1");
button = new JButton("Appuyer pour afficher un texte");
Monecouteur objetecoutant = new Monecouteur();
button.addActionListener(objetecoutant);
frame.addWindowListener(new Monecouteurfenetre());
frame.add(button, BorderLayout.CENTER);
frame.pack(); frame.setVisible(true); }
class Monecouteur implements ActionListener {
public void actionPerformed(ActionEvent event) {
System.out.println("Action surle bouton"); } }
class Monecouteurfenetre implements WindowListener {
public void windowClosing(WindowEvent event) { System.exit(0); }
public void windowClosed(WindowEvent e) {}
public void windowOpened(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
}}
public class Test12 { public static void main(String[] args) { new Ecouteur1();}}