SWING
Les fenêtres
 JWindow : la fenêtre la plus basique. pas de barre
de titre, pas de boutons de
fermeture/redimensionnement,...
Les JComponents
 JComponent est la classe de base de tous les
composants Swing, à part JFrame, JDialog et JApplet.
Les JComponents les
caractéristiques
 ToolTipText
 setBorder( Border b) et getBorder()
(BorderFactory)
 setOpaque(boole...
Les bordures
 BorderFactory.createXXXBorder :
JPanel p = new JPanel();
p.setBorder(BorderFactory.createTitledBorder("Java...
JOptionPane pour
dialoguer
 JOptionPane.showMessageDialog
• Icon, message, OK button
 JOptionPane.showConfirmDialog
• Ic...
Les LAF (look and feel)
 Mécanisme pour changer l’apparence
des composants
 UIManager gère les LAF disponibles et
le laf...
LAF
 setLookAndFeel est à appeler avant
toute autre chose dans le code. Dans le
cas où l’on sohaite changer le LAF
dynami...
Nimbus
 CrossPlateform
 Vectoriel
 Personnalisable
import javax.swing.UIManager.*;
try {
for (LookAndFeelInfo info : UI...
Nimbus
Resizing :
// mini
myButton.putClientProperty("JComponent.sizeVariant", "mini");
// small
mySlider.putClientPropert...
Gestionnaires de placement
 BorderLyout
 FLowLayout
LaoutManager par défaut des JPanel
 BoxLayout
 GridLayout
 Le Layout null (absolute positioning)
 Positionnement manuelle des elements au
pixel avec setBounds ou setLocation et
s...
 GroupLayout
 Layout complexe
 Crée pour les GUI builders comme
MATISSE qu’on retrouve sur NetBeans IDE
 GirdBagLayout
ajouter les composants dans le conteneur en
leur associant une contrainte de
type GridBagConstraints :
 gridx : position ...
 weightx
 weighty
 anchor :
 fill : NONE, HORIZONTAL, VERTICAL, BOTH
 insets : espace autour du composant.
 ipadx : ...
Les événements
Les composants Swing créent des
événements, soit directement, soit par une
action de l'utilisateur sur le c...
Source s = new Source();
Auditeur a = new Auditeur();
s.addXxxListener(a);
// a se recense auprès de s et va pouvoir
// tr...
class Auditeur implements Xxxlistener{
...
void traiter(XxxEvent e){
// le traitement de l'événement e
}
...
}
ActionEvent
 Object getSource() Retourne l'objet source de
l'événement.
 int getID()Retourne le type d'événement.
 Stri...
ActionEvent
interface ActionListener {
void actionPerformed(ActionEvent e);
}
Les composants sources de ActionEvent sont
...
MouseEvent
 Object getSource() Retourne l'objet source de l'événement.
 int getID() Retourne le type d'événement.
 Poin...
MouseEvent
interface MouseListener {
void mouseClicked(MouseEvent e);
void mouseEntered(MouseEvent e);
void mouseExited(Mo...
MouseEvent
1. mousePressed
2. mouseReleased
3. mouseClicked
Tous les composants peuvent être sources
de MouseEvent
KeyEvent
 Object getSource() Retourne l'objet source de l'événement.
 int getID() Retourne le type d'événement.
 char g...
KeyEvent
interface MouseListener{
void keyTyped(KeyEvent e);
void keyPressed(KeyEvent e);
void KeyReleased(KeyEvent e);
}
...
Adaptateur
Un adaptateur XxxAdapter est une classe abstraite qui fourni
une implémentation de la classe XxxListener. Les m...
Java : les GUI en Swing
Java : les GUI en Swing
Java : les GUI en Swing
Java : les GUI en Swing
Prochain SlideShare
Chargement dans…5
×

Java : les GUI en Swing

1 180 vues

Publié le

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 180
Sur SlideShare
0
Issues des intégrations
0
Intégrations
16
Actions
Partages
0
Téléchargements
70
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Java : les GUI en Swing

  1. 1. SWING
  2. 2. Les fenêtres  JWindow : la fenêtre la plus basique. pas de barre de titre, pas de boutons de fermeture/redimensionnement, n'est pas redimensionnable par défaut. surtout pour faire des SplashScreen.  • JDialog : boîtes de dialogue. peut être modal. Elles sont destinées à travailler de pair avec la fenêtre principale.  • JFrame : la fenêtre principale. Indépendante, ne peut pas être modale. une barre de titre, peut accueillir une barre de menu. un bouton de fermeture, un bouton de redimensionnement et une icone.  JApplet : container intégrable dans une page web
  3. 3. Les JComponents  JComponent est la classe de base de tous les composants Swing, à part JFrame, JDialog et JApplet.
  4. 4. Les JComponents les caractéristiques  ToolTipText  setBorder( Border b) et getBorder() (BorderFactory)  setOpaque(boolean b)  taille minimale, taille maximale taille préférée un alignement en X et en Y  setEnabled(boolean b)  setName(String n)
  5. 5. Les bordures  BorderFactory.createXXXBorder : JPanel p = new JPanel(); p.setBorder(BorderFactory.createTitledBorder("Java"));  createEmptyBorder(int top, int left, int bottom, int right) //créer des marges  createLineBorder(Color color)  createTitledBorder(Border border, String title)  createEtchedBorder(Color highlight, Color shadow)
  6. 6. JOptionPane pour dialoguer  JOptionPane.showMessageDialog • Icon, message, OK button  JOptionPane.showConfirmDialog • Icon, message, and buttons: OK, OK/Cancel, Yes/No, or Yes/No/Cancel  JOptionPane.showInputDialog • Icon, message, textfield or combo box, buttons  JOptionPane.showOptionDialog • Icon, message, array of buttons or other components
  7. 7. Les LAF (look and feel)  Mécanisme pour changer l’apparence des composants  UIManager gère les LAF disponibles et le laf courant  getInstalledLookAndFeels() renvoi un tableau de LookAndFeelInfo:  getName() nom du LAF  getClassName() nom de la classe à charger avec UIManager.setLookAndFeel
  8. 8. LAF  setLookAndFeel est à appeler avant toute autre chose dans le code. Dans le cas où l’on sohaite changer le LAF dynamiquement il faut demander à Swing de recharger les composants: SwingUtilities.updateComponentTreeUI(this);
  9. 9. Nimbus  CrossPlateform  Vectoriel  Personnalisable import javax.swing.UIManager.*; try { for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (Exception e) { // If Nimbus is not available, you can set the GUI to another look and feel. }
  10. 10. Nimbus Resizing : // mini myButton.putClientProperty("JComponent.sizeVariant", "mini"); // small mySlider.putClientProperty("JComponent.sizeVariant", "small"); // large myTextField.putClientProperty("JComponent.sizeVariant", "large"); Coloring : UIManager.put("nimbusBase", new Color(...)); UIManager.put("nimbusBlueGrey", new Color(...)); UIManager.put("control", new Color(...));
  11. 11. Gestionnaires de placement  BorderLyout
  12. 12.  FLowLayout LaoutManager par défaut des JPanel
  13. 13.  BoxLayout
  14. 14.  GridLayout
  15. 15.  Le Layout null (absolute positioning)  Positionnement manuelle des elements au pixel avec setBounds ou setLocation et setSize  Le setResize de toute la fenêtre doit etre mis à false.
  16. 16.  GroupLayout  Layout complexe  Crée pour les GUI builders comme MATISSE qu’on retrouve sur NetBeans IDE
  17. 17.  GirdBagLayout
  18. 18. ajouter les composants dans le conteneur en leur associant une contrainte de type GridBagConstraints :  gridx : position en x dans le grille.  gridy : position en y dans la grille.  gridwidth : nombre de colonnes occupées par le composant. (GridBagConstraints.REMAINDER GridBagConstraints.RELATIVE)  gridheight : nombre de lignes occupées par le composant.
  19. 19.  weightx  weighty  anchor :  fill : NONE, HORIZONTAL, VERTICAL, BOTH  insets : espace autour du composant.  ipadx : espace interne  ipady :
  20. 20. Les événements Les composants Swing créent des événements, soit directement, soit par une action de l'utilisateur sur le composant. Ces événements peuvent déclencher une action exécutée par d'autre(s) composant(s).  Un composant qui crée des événements est appelé source. Le composant source délègue le traitement de l'événement au composant auditeur.  Un composant qui traite un événement est appelé auditeur (listener)
  21. 21. Source s = new Source(); Auditeur a = new Auditeur(); s.addXxxListener(a); // a se recense auprès de s et va pouvoir // traiter les événements générés par s ... s.removeXxxListener(a);
  22. 22. class Auditeur implements Xxxlistener{ ... void traiter(XxxEvent e){ // le traitement de l'événement e } ... }
  23. 23. ActionEvent  Object getSource() Retourne l'objet source de l'événement.  int getID()Retourne le type d'événement.  String getActionCommand()Retourne le texte associé au composant source de l'événement (bouton ou menu)  int getModifiersRetourne un entier indiquant si les touches maj, alt ou ctrl étaient appuyées au moment de la génération de l'événement.  long getWhen()Retourne la date et l'heure de la génération de l'événement.  String paramString()Retourne une chaîne de caractères contenant toutes les informations précédentes.
  24. 24. ActionEvent interface ActionListener { void actionPerformed(ActionEvent e); } Les composants sources de ActionEvent sont  Boutons : JButton, JRadioButton, JCheckBox, JToggleButton  Menus : JMenuItem, Jmenu, JRadioButtonMenuItem, CheckBoxMenuItem  Texte : JTextField
  25. 25. MouseEvent  Object getSource() Retourne l'objet source de l'événement.  int getID() Retourne le type d'événement.  Point getPoint() Retourne les coordonnées de la souris lors de la génération de l'événement.  int getX() Retourne la coordonnée en X de la souris lors de la génération de l'événement.  int getY() Retourne la coordonnée en Y de la souris lors de la génération de l'événement.  int getModifiers Retourne un entier indiquant si les touches maj, alt ou ctrl étaient appuyées au moment de la génération de l'événement.  long getWhen() Retourne la date et l'heure de la génération de l'événement.  int getButton() Retourne quel bouton a été cliqué. les trois valeurs possibles sont MouseEvent.BUTTON1, MouseEvent.BUTTON2, MouseEvent.B UTTON3  int getClickCount() Retourne le nombre de clics associés à cet événement.
  26. 26. MouseEvent interface MouseListener { void mouseClicked(MouseEvent e); void mouseEntered(MouseEvent e); void mouseExited(MouseEvent e); void mousePressed(MouseEvent e); void mouseReleased(MouseEvent e); }
  27. 27. MouseEvent 1. mousePressed 2. mouseReleased 3. mouseClicked Tous les composants peuvent être sources de MouseEvent
  28. 28. KeyEvent  Object getSource() Retourne l'objet source de l'événement.  int getID() Retourne le type d'événement.  char getKeyChar() Retourne le caractère correspondant à la touche du clavier, ou java.awt.event.KeyEvent.CHAR_UNDEFINED s'il n'y a pas de caractère associé à la touche (touche de fonction par exemple).  int getKeyCode() Retourne le code du caractère correspondant à la touche du clavier.  int getModifiers Retourne un entier indiquant si les touches maj, alt ou ctrl étaient appuyées au moment de la génération de l'événement.  long getWhen() Retourne la date et l'heure de la génération de l'événement.  String getKeyModifiersText(int > mod) Retourne le modifieur sous forme de chaîne de caractères : Maj+Crtl+Alt.
  29. 29. KeyEvent interface MouseListener{ void keyTyped(KeyEvent e); void keyPressed(KeyEvent e); void KeyReleased(KeyEvent e); } 1. keyPressed 2. keyTyped : pour les touches qui ont un effet sur le texte d'un composant texte. 3. keyReleased Tous les composants peuvent être sources de KeyEvent
  30. 30. Adaptateur Un adaptateur XxxAdapter est une classe abstraite qui fourni une implémentation de la classe XxxListener. Les méthodes implémentées sont toutes vides, et ainsi permettent à un utilisateur de l'adaptateur de ne redéfinir que le traitement qui l'intéresse. Exemple : Un adaptateur qui ne redéfinit que KeyPressed et keyTyped : composantSource.addKeyListener( new java.awt.event.KeyAdapter() { public void keyPressed(java.awt.event.KeyEvent e){ . . . } public void keyTyped(java.awt.event.KeyEvent e){ . . . } });

×