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:
