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

avec Java Discussion :

Accéder aux composants d'une class depuis une autre class


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut Accéder aux composants d'une class depuis une autre class
    Bonjour à toutes et à tous, je débute dans la programmation en Java ne soyez pas trop dur avec moi svp.

    Je cherche depuis une class A a accéder a des composants d'une class B qui elle est un menu ( JMenu ou JMenuBar )

    Par conséquence les composants que je cherche a "contrôler" sont de type JMenuItem ou JMenu

    Comment puis je faire ?

    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 106
    Par défaut
    Citation Envoyé par CaRadek Voir le message
    Bonjour à toutes et à tous, je débute dans la programmation en Java ne soyez pas trop dur avec moi svp.

    Je cherche depuis une class A a accéder a des composants d'une class B qui elle est un menu ( JMenu ou JMenuBar )

    Par conséquence les composants que je cherche a "contrôler" sont de type JMenuItem ou JMenu

    Comment puis je faire ?

    Merci

    euh ... Avant de commencer par la, as-tu deja programme en Java ? sais-tu ce qu'est la Programmation Objet ? Sinon, je t'invite a d'abord faire quelques tutoriels de base


    Sinon, pourrais-tu etre plus explicite ? donnez un exemple concret ?

    Pour repondre, brievement a ce que j'ai compris de ta question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class A
    {
        public A(B b)
        {
            JMenuItem item = b.getSelectedItem();
        }
    }

  3. #3
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Par défaut
    Je cherche depuis une class A a accéder a des composants d'une class B qui elle est un menu ( JMenu ou JMenuBar )
    il est vrai que ce que tu cherche à faire n'est pas très claire.
    jeter un coup d'oeil sur ce post

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    Excusez moi si je n'ai pas été assez claire dans mes explications :

    Pour répondre à vos questions :

    En développement JAVA oui j'ai commencé mais que commencé.... Mon application fonctionne déjà partiellement.

    Pour mon problème :

    Alors j'ai une JMenuBar avec des composants on va nommer class A:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // La class A
    public class MenuBarPrincipale extends JMenuBar{
     
        public MenuBarPrincipale(){
    // Ajout de mes composants JMENU ....
     
        }
    }
    J'ai une class B depuis laquelle je veux pouvoir interagir sur ma class A, ajouter un JMenuItem, supprimer un JMenuItem intégré dans un JMenu de ma class A

    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
     
    // La class B
    public class GestionJmenu {
     
        private JMenu jMenu;
     
        public GestionJmenu(JMenu menu){
            jMenu = menu;
        }
     
        public void addMenu(){
           jMenu.add(unItem)
        }
     
        public void delMenu(){
         jMenu.remove(unItem)
        }
     
    }
    Bon voila grossièrement ce que ca donne, mais je ne sais pas comment lier mon (JMenu menu) à mon menu de ma JMenuBar ....

  5. #5
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    Essai de faire ceci

    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
     
    // La class A
    public class MenuBarPrincipale extends JMenuBar{
        private JMenu Menu;
        private GestionJmenu GestMen 
     
        public MenuBarPrincipale(){
              //Instance d'un JMenu
              Menu = new JMenu();
              Menu.setText("Fichier");
     
              //Instance de GestionJmenu pour la manipulation des menu
              GestionJmenu GestMen = new GestionJmenu(Menu);
              GestMen.addMenu();
              GestMen.delMenu
     
     
              add(Menu);
        }
    }
    Maintenant je trouve que ta classe GestionJmenu n'est pas tres optimise.

    Voila ce que je te proposerais
    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
     
    public class GestionJmenu {
     
        private JMenu jMenu;
     
        public GestionJmenu(JMenu menu){
            jMenu = menu;
        }
     
        public void addMenu(JMenuItem unItem){
           jMenu.add(unItem)
        }
     
        public void delMenu(JMenuItem unItem){
         jMenu.remove(unItem)
        }
     
        //Cette methode est importante car elle te permet de récupérer le menu 
       //que tu as modifie, sinon ca ne sert a rien d'avoir fait ces traitement
        public JMenu getMenu(){
               return jMenu
        }
     
    }
    tu utilises maintenant comme ceci :

    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
     
    // La class A
    public class MenuBarPrincipale extends JMenuBar{
        private JMenu Menu;
        private GestionJmenu GestMen 
     
        public MenuBarPrincipale(){
              //Instance d'un JMenu
              Menu = new JMenu();
              Menu.setText("Fichier");
     
              //Instance de GestionJmenu pour la manipulation des menu
              GestionJmenu GestMen = new GestionJmenu(Menu);
              GestMen.addMenu();
              GestMen.delMenu
     
              //Pour prendre en compte les modification faite dans GestionJmenu
              Menu = GestMenu.getMenu(); 
              add(Menu);
        }
    }

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    Merci de ta réponse, mais je pense n'avoir pas été assez claire dans ma demande excusez moi. bon je reprends en détails :

    Ma 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
     
    public class MenuBarPrincipale extends JMenuBar{
     
        public MenuBarPrincipale(){
     
          		add(getJMenuTest1());
        		add(getJMenuTest2());
        		add(getJMenuTest3());    	
        }
     
        private JMenu getJMenuTest1() {
    		if (jMenuTest1 == null) {
    			jMenuTest1 .setText("Test 1");
    			jMenuTest1 .add(getJMenuItem1());
    			jMenuTest1 .addSeparator();
    			jMenuTest1 .add(getJMenuItem1());
    			jMenuTest1 .add(getJMenuItem2());
    		}
    		return jMenuTest1 ;
    	}
     
    .....
    // Création des autres menus et des menuItems ....
    }
    Ma class de "Gestion" de mes menus :

    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
    public class GestionJmenu {
     
    	private JMenu jMenu;
     
    	public GestionJmenu(JMenu menu){
    		jMenu = menu;
    	}
     
    	public void addMenu(JMenuItem unItem){
    		jMenu.add(unItem);
    		 refresh();
    	}
     
    	public void addSep(){
    		jMenu.addSeparator();
    		refresh();
    	} 
     
    	public void delMenu(JMenuItem unItem){
    		jMenu.remove(unItem);
    		refresh();
    	}  
     
    	private void refresh(){
    		jMenu.repaint();
    		jMenu.revalidate();
    	}
    }
    L'ajout depuis une class ( n'importe laquelle ..... on va dire la class LanceTest() )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    // un JButton avec un ActionListener par exemple
     
    	public void actionPerformed(ActionEvent e) {
    		JMenuItem item = new JMenuItem("Item Ajoute");
    		new GestionJmenu(jMenuTest1).addMenu(item);
    	}
    Donc la fameuse interrogation est : comment lui passer en paramètre un jMenuTest1 qui ne se trouve pas dans la class utilisée ...

    ---------------------------

    Je pensais mettre le nom des Jmenu dans la class GestionJmenu avec un appel du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private MenuBarPrincipale menubar;
     
    private JMenu test1 = menuBar.jMenuTest1 ;
    private JMenu test2 = menuBar.jMenuTest2 ;
    private JMenu test3 = menuBar.jMenuTest3 ;
    ce qui aurait réglé mon problème
    Mais bon ca ne marche évidement pas ...

    En espérant être plus claire, excusez moi si ce n'est pas le cas

Discussions similaires

  1. Appel d'une methode depuis d'autre class
    Par giraud vias dans le forum C#
    Réponses: 3
    Dernier message: 28/12/2017, 14h17
  2. Réponses: 2
    Dernier message: 08/02/2013, 20h23
  3. Accéder aux membres d'un WF depuis une custom activity
    Par Louis-Guillaume Morand dans le forum Windows Workflow Foundation
    Réponses: 4
    Dernier message: 13/12/2008, 08h50
  4. Accéder aux objets de la form1 depuis une class
    Par Jimmy_S dans le forum Windows Forms
    Réponses: 6
    Dernier message: 23/03/2007, 22h47
  5. [AS2] Atteindre attribut d'une classe depuis une fonction interne a la classe
    Par Demco dans le forum ActionScript 1 & ActionScript 2
    Réponses: 6
    Dernier message: 18/04/2006, 21h03

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