JBuilder - Menus.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/* Les menus
*/
public class Menus
implements ActionListener, ItemListener {
// Déclaration des composants
JFrame frame;
JMenuBar barre; // Barre des menus
JMenu menu1, menu2; // menu1 est le menu principal, menu2 est un sous menu de menu1.
JMenuItem commande1, commande2, commande3; // Eléments de menu1 et menu2
JRadioButtonMenuItem rb1, rb2; // Deux boutons radios de menu1.
ButtonGroup groupe1; // Groupe qui doit contenir les deux boutons radios.
JCheckBoxMenuItem chk1, chk2; // Deux cases à cocher de menu1.
JTextField text1; // les messages des événements seront affichés dans Text1.
public Menus() {
// Création de la fenêtre
frame = new JFrame();
// Ajout des décorations à la fenêtre
frame.setDefaultLookAndFeelDecorated(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Création de la zone de text
text1 = new JTextField();
text1.setSize(new Dimension(150, 50));
//Création des menus
//Création de la barre des menus
barre = new JMenuBar();
//Création du menu principal 1
menu1 = new JMenu("Menu 1");
//Définition du raccourci pour le menu menu1
menu1.setMnemonic('M');
// Création des éléments du menu menu1
// Ajout des commandes
commande1 = new JMenuItem("Commande 1");
commande1.setMnemonic('C');
//Commande1 est une source pour les événements de type ActionEvent
commande1.addActionListener(this);
commande2 = new JMenuItem("Commande 2");
commande2.setMnemonic('O');
commande2.addActionListener(this);
// Ajout d'un séparateur
menu1.addSeparator();
// Ajout de boutons radios
rb1 = new JRadioButtonMenuItem("Option 1");
rb1.setMnemonic('p');
//rb1 est l'option sélectionnée par défaut
rb1.setSelected(true);
// rb1 est une source pour les événements de type ItemEvent.
rb1.addItemListener(this);
rb2 = new JRadioButtonMenuItem("Option 2");
rb2.setMnemonic('t');
rb2.addItemListener(this);
//Création d'un groupe de boutons d'options
groupe1 = new ButtonGroup();
groupe1.add(rb1);
groupe1.add(rb2);
menu1.addSeparator();
// Ajout des cases à cocher
chk1 = new JCheckBoxMenuItem("Choix 1");
chk1.setMnemonic('C');
// chk1 est une source pour les événements de type ItemEvent.
chk1.addItemListener(this);
chk2 = new JCheckBoxMenuItem("Choix 2");
chk2.setMnemonic('h');
chk2.addItemListener(this);
menu1.addSeparator();
//ajout du sous menu
menu2 = new JMenu("Menu 2");
menu2.setMnemonic('e');
commande3 = new JMenuItem("Commande 3");
commande3.setMnemonic('C');
commande3.addActionListener(this);
//Ajout de Commande3 dans le sous menu2
menu2.add(commande3);
//ajout des éléments dans menu1
menu1.add(commande1);
menu1.add(commande2);
menu1.add(rb1);
menu1.add(rb2);
menu1.add(chk1);
menu1.add(chk2);
menu1.add(menu2);
//Ajout de menu1 dans la barre des menus
barre.add(menu1);
//ajout de la zone de texte dans la fenêtre
frame.add(text1);
// ajout de la barre dans la fenêtre principale
frame.setJMenuBar(barre);
frame.setSize(250, 150);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
JMenuItem source = (JMenuItem) (e.getSource());
if (source == commande1) {
text1.setText("Commande1");
}
else if (source == commande2) {
text1.setText("Commande2");
}
else {
text1.setText("Commande3");
}
}
public void itemStateChanged(ItemEvent e) {
JMenuItem source = (JMenuItem) (e.getSource());
if (source == rb1) {
if (e.getStateChange() == e.SELECTED) {
text1.setText("Option 1");
}
else {
text1.setText("Option 2");
}
}
else if (source == chk1) {
if (e.getStateChange() == e.SELECTED) {
text1.setText("Choix 1 activé");
}
else {
text1.setText("Choix 1 désactivé");
}
}
else if (source == chk2) {
if (e.getStateChange() == e.SELECTED) {
text1.setText("Choix 2 activé");
}
else {
text1.setText("Choix 2 désactivé");
}
}
}
/** Affichage de la fenêtre*/
private static void afficher() {
//Création d'une instance de la classe.
new Menus();
}
public static void main(String[] args) {
afficher();
}
}