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

Langage Java Discussion :

Accéder à un objet instancié dans une autre classe


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Par défaut Accéder à un objet instancié dans une autre classe
    Bonjour. J'ai un problème avec l'accès à un objet.
    Je dispose de 3 classes :
    - une classe Onglets qui crée un onglet contenant un Panel qui contient lui même une zone de texte.
    - une classe Outils qui crée la barre d'outil (juste le bouton GRAS actuellement).
    - une classe Generateur, qui correspond au main et qui instancie 2 objets, outilBar et onglet afin de les afficher dans une Frame.

    Le problème est que je souhaiterais accéder à l'objet onglet à partir de la classe Outils pour que lorsque je clique sur le bouton GRAS, cela m'affiche GRAS dans la zone de texte contenu dans l'objet onglet. Mais je n'arrive pas à accéder à cette objet.

    Comment faire ?

    Merci d'avance

    Classe Onglets
    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
     
    import java.awt.BorderLayout;
    import java.awt.Panel;
     
    import javax.swing.JTabbedPane;
    import javax.swing.JTextPane;
     
    public class Onglets {
     
    	private JTabbedPane onglets;
    	private JTextPane textPane;
    	private Panel apercu;
     
    	public Onglets() {
     
    		//------------ONGLETS----------------------
    		onglets = new JTabbedPane();
     
    		apercu = new Panel(new BorderLayout());
    		textPane = new JTextPane();
    		apercu.add(textPane);
    		onglets.addTab("Apercu", apercu);
    	}
     
    	public JTabbedPane getOnglets() {
    		return onglets;
    	}
    }
    Classe Outils
    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
     
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.JButton;
    import javax.swing.JToolBar;
     
    public class Outils implements ActionListener{
     
    	private JToolBar toolBar;
    	private JButton gras;
     
    	public Outils() {
    		toolBar = new JToolBar("Still draggable");
     
    		gras = new JButton("gras");
    		gras.addActionListener(this);
    		toolBar.add(gras);
    	}
     
    	public JToolBar getOutils() {
    		return toolBar;
    	}
     
    	public void actionPerformed(ActionEvent e) {
    		if(e.getSource() == gras)
    			System.out.println("Gras");
    	}
    }
    Classe Generateur
    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
     
    import java.awt.BorderLayout;
     
    import javax.swing.JFrame;
     
    public class Generateur extends JFrame{
     
    	private Onglets onglet;
    	private Outils outilBar;
     
    	public Generateur() {
    		setTitle("Generateur");
    		setLocation(20,20);
    		setSize(600,600);
     
    		//--------------BARRE OUTIL----------------
    		outilBar = new Outils();
    		add(outilBar.getOutils(), BorderLayout.PAGE_START);
    		//----------------ONGLETS------------------
    		onglet = new Onglets();
    		add(onglet.getOnglets());
     
    		setVisible(true);
    	}
     
    	public static void main(String[] args) {
    		new Generateur();
    	}
    }

  2. #2
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Citation Envoyé par valentin358 Voir le message
    Le problème est que je souhaiterais accéder à l'objet onglet à partir de la classe Outils pour que lorsque je clique sur le bouton GRAS, cela m'affiche GRAS dans la zone de texte contenu dans l'objet onglet. Mais je n'arrive pas à accéder à cette objet.

    Comment faire ?
    Faire une référence de l'objet de type "Onglet" au sein de ta classe "Outils" comme variable de classe par exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // Extrait du main()
    A a = new A();
    B b = new B(a);
     
    // Classe A
    public A { ... }
    // Classe B
    public B {
      private A a;
      public B(A a) {
        this.a = a;
      }
      ...
    }
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Par défaut
    Pas bête, je n'y avais pas pensé !

    Par contre, cette méthode ne marche que lorsque l'on initialise la classe B. Or si l'on veut transmettre un objet une fois que la classe est créer, comment faire ?

  4. #4
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Citation Envoyé par valentin358 Voir le message
    Pas bête, je n'y avais pas pensé !

    Par contre, cette méthode ne marche que lorsque l'on initialise la classe B. Or si l'on veut transmettre un objet une fois que la classe est créer, comment faire ?
    Bah tu fais en sorte d'avoir une méthode de la classe A ayant besoin d'une instance de la classe B.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Par défaut
    Ok, Merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/10/2012, 13h49
  2. Réponses: 7
    Dernier message: 03/12/2008, 15h18
  3. Réponses: 6
    Dernier message: 05/11/2007, 14h51
  4. Réponses: 1
    Dernier message: 16/08/2007, 18h34
  5. Réponses: 1
    Dernier message: 05/05/2006, 14h37

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