Action sur les JMenu
soukayna
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Svp j'ai besoin de savoir comment peut on faire des actions sue les JMenu parce que normalent les actions se font sur les jmenuIteam (les ActionListener).Cordialement
Svp j'ai besoin de savoir comment peut on faire des actions sue les JMenu parce que normalent les actions se font sur les jmenuIteam (les ActionListener).Cordialement
1 réponse
-
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:
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); } }