Menu avec swing

Résolu
djanahana -  
djanahana Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   -
salut tout le monde

j'aimerai bien que vous m'aidé a trouver une solution a on probleme avec SWING java.

je travail avec les menus ,mon probleme est j'ai pas trouvé un exemple sur l'utilisation des menus avec different panel ;autrement dit ;je veut que chaque menuitem me place sur un JPANEL ,toute en restant sur la même fenetre(FRAME),

mon application est trop compliqué ,elle contient un toolbar,des onglets et vraiment j'ai pas trouve des exemples complet ,tout ce que j'ai trouve c'est des exemple qui explique chaque composant indépendamment
merci
A voir également:

3 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Dans les tutoriaux officiels, les exemples de codes sont généralement complets donc regarde plutôt Lesson: Using Swing Components et donc en particulier How to Use Menus.
2
djanahana Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   13
 
si,j'ai vu ces tutorial on problem est qu'il n y pas des actions(event) lors de clique de ces menuitem ;personnelemnt j'ai ma premiere utilisation des swing et java ,ma seul solution c'est de modifier un code qui exist déja .........................
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
"il n y pas des actions(event)" !? Pourtant dans le chapitre How to Use Menus, moi je vois un paragraphe qui y est totalement consacré : Handling Events from Menu Items...
0
djanahana Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   13
 
bonsoir,

mon objectif est similaire a celui présenté dans
https://www.developpez.net/forums/d714982/java/interfaces-graphiques-java/debuter/jframe-menu-plusieurs-panel/


il y a t'il des idées?
0
Utilisateur anonyme
 
Salut!

package hacktrack.menus;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;

public class MenuDemo extends JFrame {
	private Container c;
	private JTabbedPane tabbedPane;
	private JPanel jp1, jp2, jp3;

	public MenuDemo() {
		super("Menu Demo");
		init();
	}

	private void init() {
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		c = getContentPane();
		c.setLayout(new BorderLayout());
		tabbedPane = new JTabbedPane();
		tabbedPane.setPreferredSize(new Dimension(640, 480));
		jp1 = new JPanel();
		jp1.add(new JLabel("Panel 1"));
		tabbedPane.add("Tabbed panel 1", jp1);
		jp2 = new JPanel();
		jp2.add(new JLabel("Panel 2"));
		tabbedPane.add("Tabbed panel 2", jp2);
		jp3 = new JPanel();
		jp3.add(new JLabel("Panel 3"));
		tabbedPane.add("Tabbed panel 3", jp3);
		c.add(tabbedPane, BorderLayout.CENTER);

		JMenuBar menuBar = new JMenuBar();
		JMenu demoMenu = new JMenu("Cliquez moi...");
		
		JMenuItem jm1 =  createMenu("Activer le panel 1", jp1);
		demoMenu.add(jm1);
		
		JMenuItem jm2 =  createMenu("Activer le panel 2", jp2);
		demoMenu.add(jm2);
		JMenuItem jm3=createMenu("Activer le panel 3", jp3);
		demoMenu.add(jm3);
		
		menuBar.add(demoMenu);
		
		setJMenuBar(menuBar);
	}

	private JMenuItem createMenu(String title, JPanel panelToActivate) {
		TabSelectAction action = new TabSelectAction(title, panelToActivate);
		JMenuItem menuForPanel = new JMenuItem(action);
		menuForPanel.setPreferredSize(new Dimension(160, 20));
		return menuForPanel;
	}

	class TabSelectAction extends AbstractAction {
		private JPanel panelToActivate;

		public TabSelectAction(String title, JPanel panelToActivate) {
			super(title);
			this.panelToActivate = panelToActivate;
		}

		@Override
		public void actionPerformed(ActionEvent e) {
			tabbedPane.setSelectedComponent(panelToActivate);
			tabbedPane.repaint();
		}
	}

	public static void main(String[] args) {
		MenuDemo demo = new MenuDemo();
		demo.pack();
		demo.setVisible(true);
	}
}



;-)
1
djanahana Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   13
 
merci monsieur HackTrack effectivement c'est ça ce j'ai veux faire,moi je le fais avec Visual Editor sous ECLIPSE,puisque j'ai un problème dans tout ce qui concerne la disposition des éléments de mon GUI(c-a-d LAYOUT)

merci encore une fois

Cordialement
0
djanahana
 
je travail avec visual editor eclipse ,meme s'il y une autre facon je serai apprécie
0