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 :

[Débutant] héritage ?


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Par défaut [Débutant] héritage ?
    Salut tout le monde ! voila j'ai un problème qu'il surement vous sembler un problème de newbie mais j'ai pas le choix je le post lol.

    Alors voila voila mes classes :

    TitlePanel.java
    ContentPanel.java
    InfoPanel.java => il contient TitlePanel.java et ContentPanel.java

    TestFrame.java

    InfoPanel.java est fait comme suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    private TitlePanel titlePanel;
    private ContentPanel contentPanel;
     
    //blabla le constructeur et tout
     
    public ContentPanel getContentPanel() {
    		return contentPanel;
    	}
     
     
    	public TitlePanel getTitlePanel() {
    		return titlePanel;
    	}
    ensuite dans TestFrame.java j'aimerai pouvoir avoir accès au méthodes de TitlePanel.java et ContentPanel.java directement car pour le moment je fais comme suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    InfoPanel glo = new InfoPanel();
    glo.getTitlePanel().buildTitle("The Title");
    glo.getContentPanel().addLine("Simple Line");
    voila un exemple mais jaimerai pas avoir besoin de taper le getter. Mais simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    instance.addLine(param);
    instance.buildtitle(param);
    vous comprenez ??? merci cest important

  2. #2
    Membre émérite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par défaut
    Ben dans ce cas il faut que tu codes les méthodes déléguées de tes classes un peu comme un pattern Adapter.

    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
    private TitlePanel titlePanel;
    private ContentPanel contentPanel;
     
    public ContentPanel getContentPanel() {
        return contentPanel;
    }
     
    public TitlePanel getTitlePanel() {
        return titlePanel;
    }
     
    public xxx buildTitle(String title) {  
        getTitlePanel().buildTitle(title);
    }
     
    public xxx buildTitle(String line) {  
        getContentPanel().addLine(line);
    }

  3. #3
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par cyrill
    vous comprenez ??? merci cest important
    Il faudra bien appeler le getter une fois...

    Tu peut faire quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    private TitlePanel titlePanel = null;
    private ContentPanel contentPanel = null;
     
    ...
     
    titlePanel = glo.getTitlePanel();
    contentPanel = glo.getContentPanel();
    Ensuite, tu éxécutes les méthodes directement sur ces objets.

    Mais bon, c'est un peu con d'avoir tes panels qui sont référencés à deux endroits différents...

    Sinon, tu peut aussi faire, dans ton InfoPanel, ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void buildTitle(String title){
    titlePanel.buildTitle("The Title");
    }
     
    public void addLine(String line){
    contentPanel.addLine(line);
    }
    Ainsi, plus besoin de passer par un getter pour faire ceci.

  4. #4
    Membre émérite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par défaut
    Info:
    Ceci dit ton probléme n'a rien a voir avec de l'héritage.

    Citation Envoyé par wichtounet
    [code]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void buildTitle(String title){
    titlePanel.buildTitle("The Title");
    }
     
    public void addLine(String line){
    contentPanel.addLine(line);
    }
    [..]
    A mon avis il vaut mieux faire

    getTitlePanel(); que d'accéder à l'instance directement par titlePanel, on ne sais jamais si cette dernière est null ...

  5. #5
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par thibaut
    A mon avis il vaut mieux faire

    getTitlePanel(); que d'accéder à l'instance directement par titlePanel, on ne sais jamais si cette dernière est null ...
    Ca va pas changer grand chose, à moins que tu ne mettes un contrôle du null dans la méthode getTitlePanel...

  6. #6
    Membre éprouvé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Par défaut
    hum je vois sa... je vais essayer de faire quelque chose et je vous redis... merci a vous

  7. #7
    Membre émérite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par défaut
    Citation Envoyé par wichtounet
    Ca va pas changer grand chose, à moins que tu ne mettes un contrôle du null dans la méthode getTitlePanel...
    C'est exactement ce à quoi je pensais, ou créer une instance dans le cas ou cette dernière est null.

    @Cyrill : Un petit ?

  8. #8
    Membre éprouvé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Par défaut
    re !

    bon voila comment jai fais ! Dans l'infoPanel je vais une méthode pour chaque méthodes de titlePanel et Content panel 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
    public void setTitleBackgroundColor(Color c){
    		titlePanel.setBackground(c);
    	}
     
    	public void addTitleAction(Action a){
    		titlePanel.addAction(a);
    	}
    public void addContentLineWithAction(String s, Action a){
    		contentPanel.addLineWithAction(s, a);
    	}
     
    	public void addContentLink(String s, Action a){
    		contentPanel.addLineLink(s, a);
    	}
    et ensuite dans ma frame le user fais que sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    InfoPanel infoP = new InfoPanel();
    infoP.setTitleBackgroundColor(Color.black);
    //etc...
    voila merci

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/05/2006, 19h04
  2. [Débutante] Héritage
    Par Tootsi dans le forum 2D
    Réponses: 6
    Dernier message: 13/03/2006, 17h44
  3. [Débutant]Héritage
    Par Ryadus dans le forum Langage
    Réponses: 6
    Dernier message: 30/01/2006, 11h27
  4. [débutant]héritage
    Par pacha1 dans le forum Langage
    Réponses: 4
    Dernier message: 26/05/2004, 17h12
  5. [Débutant] Héritage & appel de méthodes
    Par KooX dans le forum Langage
    Réponses: 4
    Dernier message: 11/05/2004, 23h37

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