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.
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