A voir également:
- Action sur les JMenu
- Tubidy film d'action telecharger - Télécharger - TV & Vidéo
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
- Ecouteur solix action avis - Forum Casque et écouteurs
- Action requise sur le compte - Forum Téléphones & tablettes Android
- Cartouche epson xp 2200 action - Forum Imprimante
1 réponse
Utilisateur anonyme
10 nov. 2012 à 07:52
10 nov. 2012 à 07:52
Salut!
Le principe même d'un menu est que c'est un conteneur qui contient une collection de JMenu et/ou de JMenuItem.
Il est donc normal que l'on ne puisse par défaut pas implémenter d'action sur un menu.
Mais tu peux tout à fait ajouter directement un JMenuItem sur une JMenubar.
Exemple:
Le principe même d'un menu est que c'est un conteneur qui contient une collection de JMenu et/ou de JMenuItem.
Il est donc normal que l'on ne puisse par défaut pas implémenter d'action sur un menu.
Mais tu peux tout à fait ajouter directement un JMenuItem sur une JMenubar.
Exemple:
package hacktrack.jmenuaction; import java.awt.Container; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JTextArea; public class JMenuActionDemo extends JFrame { private Container c; private JTextArea display; public JMenuActionDemo() { super("Demo - Action on JMenu - HackTrack"); this.init(); } @SuppressWarnings("serial") private void init() { c = getContentPane(); JPanel outputPanel = new JPanel(); outputPanel.setBorder(BorderFactory .createTitledBorder("Affichage des actions")); display = new JTextArea(10, 40); outputPanel.add(display); c.add(outputPanel); JMenuBar menubar = new JMenuBar(); menubar.add(new JMenuItem(new SelectAllAction())); JMenu additionalActionsMenu = new JMenu("Autres actions..."); JMenuItem tabMenu = new JMenuItem(new TabAction()); additionalActionsMenu.add(tabMenu); JMenuItem lineFeedMenu = new JMenuItem(new LineFeedAction()); additionalActionsMenu.add(lineFeedMenu); menubar.add(additionalActionsMenu); this.setJMenuBar(menubar); } class AddSignatureAction extends AbstractAction { protected AddSignatureAction(){ super("Autres actions..."); } @Override public void actionPerformed(ActionEvent e) { display.append("Signed: Hacktrack"); } } class TabAction extends AbstractAction { protected TabAction(){ super("Tabulation"); } @Override public void actionPerformed(ActionEvent e) { display.append("\t"); } } class LineFeedAction extends AbstractAction { protected LineFeedAction(){ super("Aller à la ligne"); } @Override public void actionPerformed(ActionEvent e) { display.append("\n"); } } class SelectAllAction extends AbstractAction { protected SelectAllAction(){ super("Sélectionner tout"); } @Override public void actionPerformed(ActionEvent e) { display.select(0, display.getText().length()); } } public static void main(String[] args) { JMenuActionDemo demo = new JMenuActionDemo(); demo.pack(); demo.setVisible(true); } }