// -*- Coding: utf-8 -*-
// Time-stamp: <BackgrdMenu.java   5 déc 2013 13:37:14>

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/**
 * Fenêtre avec un menu pour changer la couleur de fond.
 * @author O. Carton
 * @version 1.0
 */
class BackgrdMenu extends JFrame {
    final int width  = 300;	// Largeur de la fenêtre
    final int height = 200;	// Hauteur de la fenêtre
    // Ajout d'une entrée dans un menu
    private void addMenuItem(JMenu menu, String name, final Color c) {
	// Création de l'entrée
	JMenuItem item = new JMenuItem(name);
	// Action associée à l'entrée du menu.
	// 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 l'entrée est choisie par
	// par l'utilisateur.  On utilise une classe anonyme qui implémente
	// l'interface ActionListener.
	item.addActionListener(new ActionListener () {
		public void actionPerformed(ActionEvent event) {
		    // Changement de la couleur du fond
		    getContentPane().setBackground(c);
		    // Actualisation de la fenêtre
		    repaint();
		}
	    });
	// Ajout de l'entrée dans le menu
	menu.add(item);
    }
    public BackgrdMenu () {
	// Dimension de la fenêtre
	setSize(width, height);
	// Titre de la fenêtre
	setTitle("Changement de fond par menu");
	// Action à faire lorsque la fenêtre est fermée.
	setDefaultCloseOperation(EXIT_ON_CLOSE);
	// Barre de menu
	JMenuBar menuBar = new JMenuBar();
	setJMenuBar(menuBar);
	// Ajout du menu
	JMenu colorMenu = new JMenu("Couleur");
	menuBar.add(colorMenu);
	// Choix du menu
 	addMenuItem(colorMenu, "Rouge", Color.red);
 	addMenuItem(colorMenu, "Vert", Color.green);
 	addMenuItem(colorMenu, "Bleu", Color.blue);
	addMenuItem(colorMenu, "Magenta", Color.magenta);
	addMenuItem(colorMenu, "Jaune", Color.yellow);
	addMenuItem(colorMenu, "Orange", Color.orange);
	addMenuItem(colorMenu, "Rose", Color.pink);
	addMenuItem(colorMenu, "Cyan", Color.cyan);
    }
    public static void main(String [] args)
    {
	// Création de la fenêtre
	BackgrdMenu bg = new BackgrdMenu();
	// Affichage de la fenêtre
	bg.setVisible(true);
    }
}