Checkbox dans un menu – JCheckBoxMenuItem | Java Swing
La classe JCheckBoxMenuItem représente une case à cocher qui peut être incluse dans un menu. Un CheckBoxMenuItem peut être associé à du texte ou à une icône graphique. MenuItem peut être sélectionné ou désélectionné. MenuItems peut être configuré et contrôlé par des actions.

Les constructeurs de la classe JCheckBoxMenuItem sont:
| JCheckBoxMenuItem() | Il crée un checkBox dans le menu initialement non sélectionné sans texte ni icône définis. |
| JCheckBoxMenuItem(Action a) | Il crée un checkBox dans le menu dont les propriétés sont extraites de l’action fournie. |
| JCheckBoxMenuItem(Icon icon) | Il crée un checkBox dans le menu initialement non sélectionné avec une icône. |
| JCheckBoxMenuItem(String text) | Il crée un checkBox dans le menu initialement non sélectionné avec du texte. |
| JCheckBoxMenuItem(String text, boolean b) | Il crée un checkBox dans le menu avec le texte et l’état de sélection spécifiés. |
| JCheckBoxMenuItem(String text, Icon icon) | Il crée un checkBox dans le menu initialement non sélectionné avec le texte et l’icône spécifiés. |
| JCheckBoxMenuItem(String text, Icon icon, boolean b) | Il crée un checkBox dans le menu avec le texte, l’icône et l’état de sélection spécifiés. |
Les méthodes couramment utilisées sont:
- getAccessibleContext(): Il obtient le AccessibleContext associé à ce JCheckBoxMenuItem.
- getSelectedObjects(): Il renvoie un tableau contenant l’étiquette du CheckBox ou null si il n’est pas sélectionnée.
- getState(): Il renvoie l’état du CheckBox.
- getUIClassID(): Il renvoie le nom de la classe L&F qui rend ce composant.
- paramString(): Il renvoie une représentation sous forme de chaîne de ce JCheckBoxMenuItem.
- setState(boolean b): Il définit l’état du CheckBox.
Exemple:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyJCheckBoxMenuItem
{
private JFrame f;
public MyJCheckBoxMenuItem(){
f = new JFrame("Exemple Checkbox dans le menu");
f.setSize(300,300);
f.setLayout(new GridLayout(3, 1));
f.setVisible(true);
}
private void showMenu(){
//créer une barre de menus
final JMenuBar bar = new JMenuBar();
//créer des menus
JMenu file = new JMenu("File");
JMenu edit = new JMenu("Edit");
final JMenu help = new JMenu("Help");
//créer les éléments du menu
JMenuItem newF = new JMenuItem("New");
JMenuItem openF = new JMenuItem("Open");
final JCheckBoxMenuItem showhelp = new JCheckBoxMenuItem(
"Show Help", true);
showhelp.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e)
{
if(showhelp.getState()){
bar.add(help);
} else {
bar.remove(help);
}
}
});
//ajouter les éléments du menu au menu principal
file.add(newF);
file.add(openF);
file.addSeparator();
file.add(showhelp);
//ajouter le menu à la barre de menus
bar.add(file);
bar.add(edit);
bar.add(help);
//ajouter la barre de menus au frame
f.setJMenuBar(bar);
f.setVisible(true);
}
public static void main(String[] args){
MyJCheckBoxMenuItem obj = new MyJCheckBoxMenuItem();
obj.showMenu();
}
}
Sortie:


