// -*- Coding: utf-8 -*-
// Time-stamp: <BackgrdButton.java 5 déc 2013 13:37:02>
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* Fenêtre avec trois boutons pour changer la couleur de fond.
* @author O. Carton
* @version 1.0
*/
class BackgrdButton extends JFrame {
final int width = 300; // Largeur de la fenêtre
final int height = 200; // Hauteur de la fenêtre
public BackgrdButton () {
// Dimension de la fenêtre
setSize(width, height);
// Titre de la fenêtre
setTitle("Changement de fond par boutons");
// Action à faire lorsque la fenêtre est fermée.
setDefaultCloseOperation(EXIT_ON_CLOSE);
// Panneau de contenu de la fenêtre
Container contentPane = getContentPane();
// Ajout du panel contenant les trois boutons
contentPane.add(new ButtonPanel());
}
public static void main(String [] args)
{
// Création de la fenêtre
BackgrdButton bg = new BackgrdButton();
// Affichage de la fenêtre
bg.setVisible(true);
}
}
/**
* Panneau contenant les trois boutons
*/
class ButtonPanel extends JPanel {
// Ajout d'un bouton à partir du titre et de la couleur
private void addButton(String name, final Color c) {
// Création du bouton
JButton button = new JButton(name);
// Action associée au bouton.
// L'action est réalisée par un object qui implémente l'interface
// ActionListener. Cette interface déclare une méthode
// actionPerformed qui est appelée lorsque le bouton est activé par
// l'utilisateur. On utilise une classe anonyme qui implémente
// l'interface ActionListener.
button.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent event) {
// Changement de la couleur du fond
setBackground(c);
// Actualisation de la fenêtre
repaint();
}
});
// Ajout du bouton au panel.
add(button);
}
public ButtonPanel () {
// Création d'un bouton pour chaque couleur
addButton("Rouge", Color.red);
addButton("Vert", Color.green);
addButton("Bleu", Color.blue);
}
}