Comment faire un menu en java Vertical

schott -  
 schott -
Bonjour à tous,
j'ai un petit soucis j'aimerais faire un menu en java , rien de bien compliqué je pense mais j'aimerais qu'il ne soit pas horizontale mais vertical est ce possible si oui comment ?
je vous remercie davance !!

je vous donne mon code:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class MenuGeneral {

public static void main(String[] args) {

JFrame mainFrame = new JFrame();

// Menu General
JMenuBar mainMenu = new JMenuBar();

//Projet
JMenu menuProjet = new JMenu("Projet");
mainMenu.add(menuProjet);
JMenuItem un = new JMenuItem("1");
JMenuItem deux = new JMenuItem("2");
menuProjet.add(un);
menuProjet.add(deux);

//Ingenieur
JMenu menuIngenieur = new JMene("Ingenieur");
mainMenu.add(menuIngenieur);
JMenuItem trois = new JMenuItem("3");
JMenuItem quatre = new JMenuItem("4");
menuIngenieur.add(trois);
menuIngenieur.add(quatre);

//Client
JMenu menuClient = new JMenu("Client");
mainMenu.add(menuClient);
JMenuItem cinq = new JMenuItem("5");
JMenuItem six = new JMenuItem("6");
menuClient.add(cinq);
menuClient.add(six);

mainFrame.setJMenuBar(mainMenu);
mainFrame.setVisible(true);
mainFrame.setSize(1000,700);
}
}
Configuration: Windows XP
Internet Explorer 6.0

7 réponses

  1. Utilisateur anonyme
     
    Salut!

    Je ne pense pas que ce soit possible sen utilisant la méthode JFrmae.setJMenubar() et sans surcharger JFrame.

    Par contre, tu peux placer ta JMenuBar à gauche dans un BorderLayout par exemple en utilisant la méthode add() de ta JFrame.

    Vois ci-dessous:

    import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.GridLayout;
    
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    
    /*
     * Created on 18-avr.-2007
     * Author: HackTrack
     */
    
    public class VerticalMenu extends JFrame {
    	private Container c;
    
    	public VerticalMenu() {
    		super("Demo vertical menu");
    		initializeFrame();
    	}
    
    	private void initializeFrame() {
    		c = getContentPane();
    		c.setLayout(new BorderLayout());
    		JMenuBar menubar = new JMenuBar();
    		menubar.setLayout(new GridLayout(3,1));
    		JMenu menu1 = new JMenu("Menu 1");
    		menu1.add(new JMenuItem("Submenu A"));
    		menu1.add(new JMenuItem("Submenu B"));
    		menu1.add(new JMenuItem("Submenu C"));
    		menubar.add(menu1);
    		menubar.add(new JMenu("Menu 2"));
    		menubar.add(new JMenu("Menu 3"));
    		c.add(menubar, BorderLayout.WEST);
    	}
    
    	public static void main(String[] args) {
    		VerticalMenu demo = new VerticalMenu();
    		demo.pack();
    		demo.setVisible(true);
    	}
    
    }
    
    


    ;-)
    HackTrack
    3
  2. schott
     
    Je te remercie pour ta reponse et pour tes conseils , en fait mon inquiétude de ce matin etait de mettre le menu en vertical et non en horizontal.
    Comme tu l'as deviné je suis novice en java swing.

    j'ai placé une action , j'aimerai en fait lorsque j'appuie sur l'item un que le panelUn s'affiche et que les autres panels de la Jframe ne s'affichent pas.

    J'ai codé ceci :

    class un implements ActionListener {

    private JPanel P1;
    private JPanel P2;
    private JPanel P3;
    private JPanel P4;
    private JPanel P5;
    private JPanel P6;

    public un (JPanel PanelUn, JPanel PanelDeux, JPanel PanelTrois, JPanel PanelQuatre,JPanel PanelCinq, JPanel PanelSix)
    {
    P1 = PanelUn;
    P2=PanelDeux;
    P3= PanelTrois;
    P4=PanelQuatre;
    P5=PanelCinq;
    P6=PanelSix;
    }

    public void actionPerformed(ActionEvent e) {
    PanelUn.setVisible(true);
    PanelDeux.setVisible(false);
    PanelTrois.setVisible(false);
    PanelQuatre.setVisible(false);
    PanelCinq.setVisible(false);
    PanelSix.setVisible(false);

    }

    Te remercie pour ton temps !!!
    Schott
    1
  3. Utilisateur anonyme
     
    Je regarde ça demain

    ;-)
    HackTrack
    1
  4. Ermelin
     
    J'ai adapté votre code :

    Si déjà des problèmes arrivent a ce niveau, cela promet pour la suite, sauf si vous débutez dans le domaine de la programmation.

    Dans un menu, il faudra placer les actions... bon courage

    Prochainement on parlera d'optimalisation du code...

    Autre remarque, la méthode size a disparu, il sera plus facile d'utiliser des "Layout" pour disposer vos JComponent.
    pack fera tout pour vous, si vous avez bien iniatilisé vos composants.
    ==============================
    package commentFaire;

    import javax.swing.*;

    public class MenuVertical {

    public static void main(String[] args) {

    JFrame mainFrame = new JFrame();

    // Menu General
    JMenuBar mainMenu = new JMenuBar();
    JMenu jMenuVertical = new JMenu("Vertical");
    mainMenu.add(jMenuVertical);

    // Projet
    JMenu menuProjet = new JMenu("Projet");
    jMenuVertical.add(menuProjet);
    JMenuItem un = new JMenuItem("1");
    JMenuItem deux = new JMenuItem("2");
    menuProjet.add(un);
    menuProjet.add(deux);

    // Ingenieur
    JMenu menuIngenieur = new JMenu("Ingenieur");
    jMenuVertical.add(menuIngenieur);
    JMenuItem trois = new JMenuItem("3");
    JMenuItem quatre = new JMenuItem("4");
    menuIngenieur.add(trois);
    menuIngenieur.add(quatre);

    // Client
    JMenu menuClient = new JMenu("Client");
    jMenuVertical.add(menuClient);
    JMenuItem cinq = new JMenuItem("5");
    JMenuItem six = new JMenuItem("6");
    menuClient.add(cinq);
    menuClient.add(six);

    mainFrame.setJMenuBar(mainMenu);
    mainFrame.pack();
    mainFrame.setVisible(true);

    }

    }
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. schott
     
    En fait,quand je te disais un menu vertical c'était l'orientation du menu que j'aimerais vetical, car en effet quand je crée un menu il a toujours une orientation horizontale par défaut.

    J'aimerais réaliser un menu qui ressemble un peu à ca :

    Par exemple: un menu avec des items , Forum ,Tutoriaux et Login et lorsque l'on clique sur l'item Login ses enfants s'ouvrent donc Connecter et Déconnecter.

    Forum
    Tutoriaux
    Login -> Connecter
    -> Déconnecter

    Je te remercie davance !!!
    schott
    0
  7. schott
     
    Je te remercie je testerai ca ce soir !!!

    J'ai placé une action sur un item du menu , j'aimerai en fait lorsque j'appuie sur l'item un que le panelUn s'affiche et que les autres panels de la Jframe ne s'affichent pas Est ce possible ?

    J'ai ecrit ce que j'ai tappé dans la classe action sur la deuxieme reponse (plus haut)
    je te remercie !!!
    Schott
    0