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 :

question sur l'héritage


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2010
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 58
    Par défaut question sur l'héritage
    Bonsoir,

    Je débute en Java, et quelque concept reste flou.
    J'ai crée une interface graphique avec swing, dans laquelle il y a une classe (appelons la A) qui défini une fiche de contact, avec mes JTextField, mes JLabel etc..., elle permet de remplir la fiche d'un contact (nom,prénom ...), j'ai besoin de créer une autre classe (appelons la B) pour la modification d'un contact et en fait graphiquement ce sera les même jTextField, JLabel etc..., donc j'aimerais faire appel à la classe A plutôt que de refaire l'interface graphique de la fiche d'un contact.
    Dois je passer par l'héritage? , si oui est ce que si je modifie une zone de texte par exemple le nom, dans la classe B, est ce que ça va changer dans la classe A?
    Je sais pas trop comment faire, voilà j'espère avoir été clair merci d'avance.

  2. #2
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    ça ne tiendrais qu'à moi je ferais un bête copier coller de ma classe xD.
    Bref, mais pour faire ça avec une seule classe, je ferais une classe "Contact" qui contiendra toute mon interface (JTextField, JLabel,...) et après je ferais 2 instances de contact au choix.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Contact nouveau = new Contact("Nouveau");
    Contact modifier = new Contact("Modifier","Mr dupont")
    Et ensuite dans la classe contact l'action effectuée se fait en fonction... nouveau ou modifier.

    C'est comme ça que je ferais personnellement, pas besoin d'héritage je pense. Reste à attendre les autres avis

  3. #3
    Membre expérimenté
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Par défaut
    Bonsoir,

    pour ma part je voterais pas pour le copier coller,
    juste faire 2 constructeurs de classes différent :

    new A() // qui créé un nouveau contact
    new A(Contact c) // qui va initialiser les champs en fonction du contact, et le modifier

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2010
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 58
    Par défaut Merci pour vos réponse
    Merci pour vos réponses effectivement, je pourrais faire avec des constructeurs différents,je teste ça je posterais les résultats certainement demain sur ce forum, merci encore.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Par défaut
    heu moi j'aurais fait un JPanel qui me permet d'afficher un contact (ce n'est pas mon problème de savoir ce que l'on vas faire de moi moi j'affiche).
    et je l'integreré dans un autre JPanel qui lui change

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    JPanelContact myContactPanel = new JPanelContact(mode nouveau);
    // dans ce cas on affiche le bouton Crée par exemple
    myContactPanel.setMode(mode editer);
    // la on affiche le bouton enregistrer
    et les 2 boutons ont leur propre listener

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2010
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 58
    Par défaut toujours sur mon problème
    Bonjour,

    Je suis désolé, mais je n'ai pas compris ce que tu as voulus dire rolfone, le setMode(mode éditer),c'est quoi au juste?
    Je créer une classe jPanel et j'écrit une méthode setMode qui ajoutera un boutons différents avec son propre listener c'est ça?
    Ou bien je créer une classe qui hérite de jPanel et je lui donne deux constructeurs un qui donne le texte ("enregistrer") au boutons et un autre constructeur qui mettra comme texte ("valider les modifications) et mes listeners se feront sur le texte du boutons ça semble bon ça?
    Merci encore.

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Par défaut
    effectivement mon explication est vraiment pas terrible la

    je ferais un class qui extend JPanel dans ce style

    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
    public class MonPanel extends JPanel {
     
    	private JButton nouveau = new JButton("Nouveau");
    	private JButton editer = new JButton("Editer");
            // le panel qui affiche un contact.
    	private PanelContact dispContact = new PanelContact( ... );
     
    	public MonPanel(){
    		// je mette en place tout mon bordel
    		this.add(dispContact, BorderLayout.CENTER);
     
    		nouveau.addActionListener(new ActionListener() {
     
                public void actionPerformed(ActionEvent e) {
                    // mon traitment pour le bouton nouveau 
                }
            });
    		editer.addActionListener(new ActionListener() {
     
                public void actionPerformed(ActionEvent e) {
                    // mon traitment pour le bouton editer 
                }
            });
     
    		//et on met le bouton nouveau par defaut 
    		this.setMode("Nouveau");
    	}
     
    	public void setMode(String mode){
    		if(mode.equals("Nouveau"){
    			//afficher le bouton Nouveau
    		}
    		if(mode.equals("Editer"){
    			//afficher le bouton Editer
    		}
    	}
    }
    tu comprend mieux ou c'est toujours flou?

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

Discussions similaires

  1. Questions sur l'héritage multiple
    Par beegees dans le forum C++
    Réponses: 12
    Dernier message: 31/03/2008, 17h01
  2. Question sur l'héritage (débutant en C++)
    Par beegees dans le forum C++
    Réponses: 19
    Dernier message: 30/03/2008, 14h45
  3. petite question sur l'héritage et les cast
    Par baedal dans le forum Langage
    Réponses: 3
    Dernier message: 29/02/2008, 00h48
  4. Questions sur l'héritage dans Matisse
    Par Cassios dans le forum NetBeans
    Réponses: 8
    Dernier message: 14/03/2007, 23h23
  5. Question sur l'héritage
    Par the big ben 5 dans le forum Delphi
    Réponses: 28
    Dernier message: 06/06/2006, 17h27

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