A voir également:
- Action sur les JMenu
- Télécharger film d'action gratuitement et rapidement - Télécharger - TV & Vidéo
- Concurrent action - Guide
- Vous devez disposer d'une autorisation pour effectuer cette action - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
- Magasin moins cher qu'action - Guide
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:
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);
}
}