[JAVA] Question à propos de Switch

Fragma Messages postés 8 Statut Membre -  
 Utilisateur anonyme -
Salut,

en fait je suis débutante en JAVA, et j'ai besoin pour mon projet d'utiliser des menus .. je voudrai savoir comment faire en utilisant switch pour revenir au menu précédent à partir d'un autre menu. J'ai une idée précise du résultat mais pas de la manière de l'obtenir :(

Merci à vous!
Configuration: Windows XP
Firefox 2.0.0.1

1 réponse

  1. Utilisateur anonyme
     
    Salut !

    Voici une piste...

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JPanel;
    
    public class ChangeMenuDemo extends JFrame {
    	private JMenuBar firstMenu;
    
    	private JMenuBar secondMenu;
    
    	public ChangeMenuDemo() {
    		super("Menu demo");
    		setDefaultCloseOperation(EXIT_ON_CLOSE);
    		ChangeMenuListener listener = new ChangeMenuListener(this);
    		firstMenu = new FirstMenu(listener);
    		secondMenu = new SecondMenu(listener);
    		setJMenuBar(secondMenu);
    		JPanel fooPanel = new JPanel();
    		fooPanel.add(new JLabel("Cliquez sur 'Options' puis 'Go tp menu x' pour changer de menu"));
    		add(fooPanel);
    	}
    
    	public void setMenu(JMenuBar newMenu) {
    		this.setJMenuBar(newMenu);
    		validate();
    	}
    	
    	public JMenuBar getMenu( ) {
    		return this.getJMenuBar();
    	}
    
    	class FirstMenu extends JMenuBar {
    		private static final long serialVersionUID = -4697482731046857467L;
    
    		public FirstMenu(ChangeMenuListener listener) {
    			super();
    			JMenu menu_options = new JMenu("Options");
    			JMenuItem menu_options_help = new JMenuItem("Help");
    			JMenuItem menu_options_changeMenu = new JMenuItem("Go to menu 2");
    			menu_options_changeMenu.addActionListener(listener);
    			menu_options.add(menu_options_help);
    			menu_options.add(menu_options_changeMenu);
    			add(menu_options);
    		}
    	}
    
    	class SecondMenu extends JMenuBar {
    		private static final long serialVersionUID = -1991397704913469398L;
    
    		public SecondMenu(ChangeMenuListener listener) {
    			super();
    			JMenu menu_edit = new JMenu("Edit");
    			JMenuItem menu_edit_copy = new JMenu("Copy");
    			JMenuItem menu_edit_paste = new JMenu("Paste");
    			menu_edit.add(menu_edit_copy);
    			menu_edit.add(menu_edit_paste);
    			JMenu menu_options = new JMenu("Options");
    
    			JMenuItem menu_options_changeMenu = new JMenuItem("Go to menu 1");
    			menu_options_changeMenu.addActionListener(listener);
    			menu_options.add(menu_options_changeMenu);
    			add(menu_options);
    		}
    
    	}
    
    	class ChangeMenuListener implements ActionListener {
    		private ChangeMenuDemo parentFrame;
    
    		public ChangeMenuListener(ChangeMenuDemo parentFrame) {
    			super();
    			this.parentFrame = parentFrame;
    		}
    
    		public void actionPerformed(ActionEvent e) {
    			System.out.println("change");
    			if(parentFrame.getMenu().equals(firstMenu)){
    				System.out.println("go to menu 2");
    				parentFrame.setJMenuBar(secondMenu);
    			}else{
    				System.out.println("go to menu 1");
    				parentFrame.setJMenuBar(firstMenu);
    			}
    		}
    
    	}
    
    	public static void main(String[] args) {
    		ChangeMenuDemo demo = new ChangeMenuDemo();
    		demo.pack();
    		demo.setVisible(true);
    	}
    
    }
    
    


    ;-)
    HackTrack
    0