précédent | suivant | table des matières
|
Démonstration de quelques possibilités des menus.
Ce composant permet de créer une barre de menu.
JMenuBar mb = new JMenuBar(); ... frame.setJMenuBar(mb)
Pour ajouter des menus dans une barre de menu | Pour cadrer un menu à droite |
mb.add(un menu) |
mb.add(Box.createHorizontalGlue()); mb.add( un menu); |
JMenu
Ce composant permet de créer un menu. Un menu sera composé d'un ou plusieurs items de menu.
JMenu menu = new JMenu(); // affecter le texte du menu menu.setText("Mon Menu"); // affecter l'icône du menu menu.setIcon(new ImageIcon(getClass().getResource("/testswing/icone.gif"))); // affecter le raccourci alt+M menu.setMnemonic(KeyEvent.VK_M); // ajouter le menu dans la barre de menu mb.add(menu);
Un menu peut être ajouté à un autre menu : on parle alors de sous-menu.
Pour ajouter des items dans un menu | Pour insérer une séparation dans la liste des items |
menu.add(un item) |
menu.addSeparator() |
Item de menu
Il y a trois sortes d'item de menu :
JMenuItem
Ce composant permet de créer un item de menu. Cet item peut être muni d'un texte, d'une icône, d'un raccourci, et d'un accélérateur. Il peut être actif ou inactif.
JMenuItem mi = new JMenuItem(); // affectation de l'icône mi.setIcon(new ImageIcon(getClass().getResource("/testswing/icone.gif"))); // affectation du texte mi.setText("le texte"); // affectation du raccourci alt+m mi.setMnemonic(KeyEvent.VK_M); // affectation de l'accélérateur ctrl+z mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z, Event.CTRL_MASK, true)); // l'item de menu est actif mi.setEnabled(true); // Ajout de l'item à un menu menu.add(mi);
Un item peut déclencher une action quand il est choisi :
java.awt.event.ActionListener action = new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
// e.getSource() permet de connaître la source qui a déclenché l'action
}
};
. . .
mi.addActionListener(action);
JRadioButtonMenuItem
Un item de menu peut être un bouton radio. Ceci permet de faire des choix exclusifs : on utilise un ButtonGroup pour grouper les boutons radio : un seul bouton du groupe peut être sélectionné.
JRadioButtonMenuItem jrb1 = new JRadioButtonMenuItem(); jrb1.setSelected(true); JRadioButtonMenuItem jrb2 = new JRadioButtonMenuItem(); JRadioButtonMenuItem jrb3 = new JRadioButtonMenuItem(); ButtonGroup bg = new ButtonGroup(); bg.add(jrb1); bg.add(jrb2); bg.add(jrb3);
JCheckButtonMenuItem
Un item de menu peut être une boîte à cocher. les méthodes isSelected() et setSelected(boolean b) permettent de savoir si une boîte est cochée, et de la cocher ou de la décocher.
Un menu surgissant se construit comme un menu :
JPopupMenu popup = new JPopupMenu(); JMenuItem menuItem = new JMenuItem("un item de popup"); popup.add(menuItem); menuItem = newJMenuItem("un autre item de popup"); popup.add(menuItem); popup.addSeparator(); menuItem = new JMenuItem(); menuItem.setText("Quitter"); menuItem.setIcon(new ImageIcon(getClass().getResource("/testswing/quitter.gif"))); menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,Event.CTRL_MASK, true)); menuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { System.exit(0); } }); popup.add(menuItem);
Un menu surgissant est rendu visible à la suite d'un événement, sous Windows™ c'est lors du relachement du bouton droit de la souris :
java.awt.event.MouseAdapter action = new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent e) {
if(e.getButton() == java.awt.event.MouseEvent.BUTTON3)
getPopupMenu().show(AppliMenu.this, e.getX(), e.getY());
}
}
UnComposant.addMouseListener(action);