next up previous contents index
Next: 34 Gestion des évènements Up: Java: JFC Previous: 32 Java Foundation Class

Subsections

33 Les composants Swing

33.0.1 JComponent

Les widgets disponibles dans Swing sont toutes dérivée de la classe abstraite JComponent. Par exemple, la classe JButton est une classe dérivée de la classe JComponent.

40.2 Un exemple

33.1 JButton

  

 

   import java.applet.Applet;
   import java.awt.swing.*;
   import java.awt.event.*;
   import java.awt.*;

   public class SwingBouton extends Applet implements ActionListener {
      int milieu = 1;
      Image imActiver = getToolkit().getImage("activer.gif");
      Image imTourner = getToolkit().getImage("tourner.gif");
      Image imDesactiver = getToolkit().getImage("desactiver.gif");
      Image imPressed = getToolkit().getImage("pressed.gif");
      Icon iconActiver, iconTourner, iconDesactiver, iconPressed = new ImageIcon(imPressed);
      JButton b[] = { 
         new JButton("Desactiver bouton " + milieu, iconDesactiver=new ImageIcon(imDesactiver)),
         new JButton("Tourner", iconTourner = new ImageIcon(imTourner)),
         new JButton("Activer bouton " + milieu, iconActiver = new ImageIcon(imActiver))
      };
   
      public void init() {
         for (int i = 0; i < b.length; i++) {
            b[i].addActionListener(this);
            add(b[i]);
            b[i].setPressedIcon(iconPressed);
         }
         b[milieu].setActionCommand("Tourner");
         b[(milieu-1)%3].setActionCommand("Désactiver");
         b[(milieu+1)%3].setActionCommand("Activer");
      }
      public void actionPerformed(ActionEvent e) {
         String s = e.getActionCommand();
         if ("Désactiver".equals(s)) b[milieu].setEnabled(false);
         else if ("Activer".equals(s)) b[milieu].setEnabled(true);
         else {
            milieu = (milieu+1)%3;
            b[milieu].setActionCommand("Tourner");
            b[(milieu-1+3)%3].setActionCommand("Désactiver");
            b[(milieu+1)%3].setActionCommand("Activer");      
            b[milieu].setText("Tourner");
            b[(milieu-1+3)%3].setText("Desactiver bouton " + milieu);
            b[(milieu+1)%3].setText("Activer bouton " + milieu);      
            b[milieu].setIcon(iconTourner);
            b[(milieu-1+3)%3].setIcon(iconDesactiver);
            b[(milieu+1)%3].setIcon(iconActiver);
            validate();
         }
      }
      public static void main(String[] args) {
         Frame f = new Frame("Des menus");
         SwingBouton p =  new SwingBouton();
         f.addWindowListener(
               new WindowAdapter() {                             
                  public void windowClosing(WindowEvent e) { System.exit(0); }
               });
         p.init();
         f.add(p);
         f.pack();
         f.show();
      }
   }



Touraivane
6/12/1998