IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

JMenuBar : creer sa propre classe pour la gestion des menus : problème.


Sujet :

Java

  1. #1
    Membre confirmé Avatar de ben.IT
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 431
    Points : 486
    Points
    486
    Par défaut JMenuBar : creer sa propre classe pour la gestion des menus : problème.
    bonjour,
    je souhaite creer une classe qui gère les menu de mon application.
    Pour cela, j'ai créé la classe MenuBarLims extends JMenuBar dans laquelle j'ai défini mes menu ds le constructeur
    . Puis dans laclasse gérant l'application je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		MenuBarLims menuBarlims = new MenuBarLims() ;
    		frame.setJMenuBar(menuBarlims);
    mais cela ne fonctionne pas ...

    est ce que quelqu'un à une idée d'ou peut venir le problème ??
    merci d'avance,
    voici le code :
    classe MenuBarLims extends JMenuBar :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    package application;
     
    import java.awt.event.KeyEvent;
     
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
     
    public class MenuBarLims extends JMenuBar {
     
    	JMenuBar menuBar;
     
    	public MenuBarLims () {
     
    		menuBar = new JMenuBar();
     
    		JMenu menuOrder = new JMenu("Order");
    		menuOrder.setMnemonic(KeyEvent.VK_O);
    		menuBar.add(menuOrder);
     
    		JMenu menuCustomer = new JMenu("Customer");
    		menuCustomer.setMnemonic(KeyEvent.VK_C);
    		menuBar.add(menuCustomer);
     
    		JMenu menuAnalysis = new JMenu("Analysis");
    		menuAnalysis.setMnemonic(KeyEvent.VK_A);
    		menuBar.add(menuAnalysis);
     
    		JMenu menuBill = new JMenu("Bill");
    		menuBill.setMnemonic(KeyEvent.VK_B);
    		menuBar.add(menuBill);
     
    		JMenu menuUser = new JMenu("Users");
    		menuUser.setMnemonic(KeyEvent.VK_U);
    		menuBar.add(menuUser);
     
    		JMenu menuBatch = new JMenu("Batch");
    		menuBatch.setMnemonic(KeyEvent.VK_T);
    		menuBar.add(menuBatch);
    		menuBar.setVisible(true);
    	}
     
    }
    et classe de l'application :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    package application;
     
    import imageBackground.BackgroundPanel;
     
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.event.KeyEvent;
     
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JPanel;
     
    public class Application {
     
    	/************************************************************************************/
    	Dimension tailleEcran = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
    	int height = (int)tailleEcran.getHeight();
    	int width = (int)tailleEcran.getWidth();
     
    	//taille fenetre globale (avec le background)
    	float height_fenetre = height * (float)(0.70) ;
    	float width_fenetre = width* (float)(0.40) ;
     
    	//taille de la partie de l application (pas le background)
    	float height_apps = ((float)0.80 * height_fenetre);
    	float width_apps = ((float)0.90 * width_fenetre);
     
    	//centrage
    	float bound_height  =( height_fenetre - height_apps)/2 ;
    	float bound_width  =( width_fenetre - width_apps)/2 ;
     
    	/************************************************************************************/
     
    	private JPanel pBackground;
     
    	public Application () {
     
    		JFrame frame= new JFrame();
    		Container contenu = frame.getContentPane();
     
     
    		//backgrouund
    		pBackground = new BackgroundPanel(getClass().getResource("21.jpg"));
    		pBackground.setLayout(null);// pour pouvoir utilier setBounds
    		contenu.add(pBackground);
     
    		//panneau de l application : pApplication
    		JPanel pApplication = new JPanel();
    		pBackground.add(pApplication);
    		pApplication.setBounds((int) bound_width, (int)bound_height, (int)width_apps, (int)height_apps);
    		pApplication.setBackground(Color.cyan);
    		pApplication.setLayout(new BorderLayout());
     
    		MenuBarLims menuBarlims = new MenuBarLims() ;
    		frame.setJMenuBar(menuBarlims);
     
     
     
     
    		/************************************************************************************/
    		frame.setTitle("GenIndex LIMS");
    		frame.setBounds( width/5, height/5,  (int) width_fenetre, (int) height_fenetre);
    		//frame.setResizable(false);
    		frame.setVisible(true);	
    }
    }//
    merci d'avance,
    benilto

  2. #2
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    Salut,

    vires 'JMenuBar menuBar' et travaille sur ton objet 'this'

  3. #3
    Membre confirmé Avatar de ben.IT
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 431
    Points : 486
    Points
    486
    Par défaut
    merci beaucoup pour ta réponse : le problème est réglé
    Pourquoi est ce que cela ne fonctionnait pas en déclarant un attribut JmenuBar ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    package application;
     
    import java.awt.event.KeyEvent;
     
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
     
    public class MenuBarLims extends JMenuBar {
     
     
     
    	public MenuBarLims () {
    		/**********************ORDER*************************/
    		JMenu menuOrder = new JMenu("Order");
    		menuOrder.setMnemonic(KeyEvent.VK_O);
    		this.add(menuOrder);
     
    		JMenuItem menuItemCreateOrder = new JMenuItem("Create a new order"); menuOrder.add(menuItemCreateOrder);
    		JMenuItem menuItemEditOrder = new JMenuItem("Edit an order"); menuOrder.add(menuItemEditOrder);
    		JMenuItem menuItemRemoveOrder = new JMenuItem("Remove an order"); menuOrder.add(menuItemRemoveOrder);
     
    		/**********************CUSTOMER*************************/
     
    		JMenu menuCustomer = new JMenu("Customer");
    		menuCustomer.setMnemonic(KeyEvent.VK_C);
    		this.add(menuCustomer);
     
    		JMenuItem menuItemCreateCustomer = new JMenuItem("Create a new customer"); menuCustomer.add(menuItemCreateCustomer);
    		JMenuItem menuItemEditCustomer = new JMenuItem("Edit a customer"); menuCustomer.add(menuItemEditCustomer);
    		JMenuItem menuItemRemoveCustomer = new JMenuItem("Remove a customer"); menuCustomer.add(menuItemRemoveCustomer);
     
     
    		/**********************ANALYSIS*************************/
     
    		JMenu menuAnalysis = new JMenu("Analysis");
    		menuAnalysis.setMnemonic(KeyEvent.VK_A);
    		this.add(menuAnalysis);
     
    		JMenuItem menuItemCreateAnalysis = new JMenuItem("Create a new analysis "); menuAnalysis .add(menuItemCreateAnalysis );
    		JMenuItem menuItemEditAnalysis  = new JMenuItem("Edit an analysis "); menuAnalysis.add(menuItemEditAnalysis);
    		JMenuItem menuItemRemoveAnalysis  = new JMenuItem("Remove an analysis "); menuAnalysis.add(menuItemRemoveAnalysis);
     
    		/**********************BILL*************************/
    		JMenu menuBill = new JMenu("Bill");
    		menuBill.setMnemonic(KeyEvent.VK_B);
    		this.add(menuBill);
     
    		JMenuItem menuItemCreateBill = new JMenuItem("Create a new bill "); menuBill.add(menuItemCreateBill);
    		JMenuItem menuItemEditBill = new JMenuItem("Edit a bill "); menuBill.add(menuItemEditBill);
    		JMenuItem menuItemRemoveBill = new JMenuItem("Remove a bill "); menuBill.add(menuItemRemoveBill);
     
    		/**********************USER*************************/
    		JMenu menuUser = new JMenu("Users");
    		menuUser.setMnemonic(KeyEvent.VK_U);
    		this.add(menuUser);
     
    		JMenuItem menuItemCreateUser = new JMenuItem("Create a new user "); menuUser.add(menuItemCreateUser);
    		JMenuItem menuItemEditUser = new JMenuItem("Edit an user "); menuUser.add(menuItemEditUser);
    		JMenuItem menuItemRemoveUser = new JMenuItem("Remove an user "); menuUser.add(menuItemRemoveUser);
     
    		/**********************BATCH*************************/
    		JMenu menuBatch = new JMenu("Batch");
    		menuBatch.setMnemonic(KeyEvent.VK_T);
    		this.add(menuBatch);
     
    		JMenuItem menuItemCreateBatch = new JMenuItem("Create a new batch "); menuBatch.add(menuItemCreateBatch);
    		JMenuItem menuItemEditBatch = new JMenuItem("Edit a batch "); menuBatch.add(menuItemEditBatch);
    		JMenuItem menuItemRemoveBatch = new JMenuItem("Remove a batch "); menuBatch.add(menuItemRemoveBatch);
     
    		this.setVisible(true);
    	}
     
    }
    merci à toi
    ben

  4. #4
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    Dans ta JFrame, tu faisais appel à ton objet perso. Hors celui ci n'était jamais enrichi, puisque tu enrichissais un JMenuBar interne à ton objet (le fameux 'JMenuBar menuBar').

    Une autre solution aurait été de faire un getter sur ce JMenuBar et de l'insérer dans ta JFrame (frame.setJMenuBar(menuBarlims.getJMenuBarInterne())
    , ce qui aurait été d'une logique quelque peu troublante...

    En espérant avoir été clair,
    ++

  5. #5
    Membre confirmé Avatar de ben.IT
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 431
    Points : 486
    Points
    486
    Par défaut
    merci pour ta réponse,
    à bientôt

    benilto

  6. #6
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    bonjour,
    j'utilise Jgloo pour la création de l'interface graphique de mon application.Mon problème est l'affichage des menus.la création marche mais pas d'affichage lors de l’exécution.
    merci d'avance pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. diagramme de classe pour la gestion d'achat
    Par kaoutar25 dans le forum Diagrammes de Classes
    Réponses: 0
    Dernier message: 05/04/2011, 21h37
  2. aider moi a trouvez le diagramme de classe pour la gestion d'hotel
    Par samouha21 dans le forum Diagrammes de Classes
    Réponses: 2
    Dernier message: 12/03/2011, 16h54
  3. Réponses: 7
    Dernier message: 05/04/2010, 02h11
  4. quel SGBD possible pour telle gestion des droits
    Par meufeu dans le forum Décisions SGBD
    Réponses: 11
    Dernier message: 14/04/2005, 09h17
  5. Réponses: 3
    Dernier message: 04/08/2004, 19h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo