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

AWT/Swing Java Discussion :

Observeur Observable !


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé Avatar de fabred
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2007
    Messages : 180
    Par défaut Observeur Observable !
    J'ai un probleme sur la mise a jour de l'observer !

    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 Hypothese extends Observable{
     
    	/**
             * Nom de l'exploitant
             */
    	private String nom;
    	/**
             * Prenom de l'exploitant
             */
                  private String prenom;
     
    	/**
             * Constructeur par defaut
             */
    	public Hypothese() {
    		super();
    		addObserver(new PaneDossier(null,null));	
    		this.nom = null;
    		this.prenom = null;
    	}
     
          public void setNom(String nom) {
    		this.nom = nom;
    		setChanged();
    		notifyObservers();
    	}
     
    	/**
             * @param prenom the prenom to set
             */
    	public void setPrenom(String prenom) {
    		this.prenom = prenom;
    		setChanged();
    		notifyObservers();
    	}
    }

  2. #2
    Membre confirmé Avatar de fabred
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2007
    Messages : 180
    Par défaut
    et l'observer =>

    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
     
    public class PaneDossier extends JPanel implements Observer {
     
    	/**
             * 
             */
    	private JTextField texte;
     
            /**
             * Constructeur par arguments
             * @param hypothese
             */
    	public PaneDossier(Dossier dossier, Hypothese hypothese) {
    		super();
    		this.hypothese = hypothese;
    		this.dossier = dossier;
     
    		add(getTexte());
     
             this.remplirChamps();
    	}
     
     
              public void update(Observable o, Object arg) {
    		setTexte(hypothese.getNom()+hypothese.getPrenom());
    		this.repaint();
    	}
     
          	public void setTexte(String texte) {
    		this.texte.setText(texte);
    	}
     
     
    	public JTextField getTexte() {
    		if (texte==null){
    			texte= new JTextField();
    			texte.addKeyListener( new KeyAdapter() {
    				public void keyReleased(KeyEvent e) {
    					getHypothese().setTexte(texte.getText());
    				}
    			});
    		}
    		return texte;
    	}
     
    }
    Mais dans le TextField, le nom + le prenom n'appairaisse pas ! !

  3. #3
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Dans le cadre des Swing il est en général préférable de passer par un mécanisme Events/Listeners (qui rejoint au final Observer et Observable, mais dans une façon plus facilement intégrable dans swing.

    Réfères toi à ce tuto: http://rom.developpez.com/java-listeners/

  4. #4
    Membre confirmé Avatar de fabred
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2007
    Messages : 180
    Par défaut
    J'ai suis au courrant, merci !
    Mais je obligé de faire avec l'Observer Observable !

    Et le probleme, c'est que quand il a finit le notifyObservers(),
    c'est comme s'il n'était jamais passé dans le update !

  5. #5
    Membre expérimenté

    Étudiant
    Inscrit en
    Mai 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 200
    Par défaut
    bonjour fabred,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    this.hypothese = hypothese;
    this.dossier = dossier;
     
    ......
     
    getHypothese()
    Ca sort d'où! je ne vois pas d'attribut hypothese et dossier dans ta classe PaneDossier, c'est un oubli quand tu as posté ?

    Est-ce que tu passe dans le update ?

    Si oui, affiche dans la console le contenu de ton JTextField après modification : si l'affichage est correct, le problème vient du repaint() qui ne se fait pas correctement.

    Sinon c'est que tu doit mal utiliser observer / observable.

    Autre possibilité, mais je ne suis pas sur (à tester), utilise l'objet de type Observable passé en argument de la méthode update pour faire la mise à jour de ton texte.

    Bonne chance!

  6. #6
    Membre confirmé Avatar de fabred
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2007
    Messages : 180
    Par défaut
    Ouais, l'affichage est correct, il affiche bien ce qui fo dans le update !
    Mais apres, c'est comme s'il y été pas passé !!!

    Le changement ce fait pas sur la fenetre,
    moi aussi je pensé que ca vené du repaint mais on ma di que c t pas possible!

    Apres pour utiliser l'objet Observable o, je vois pas trop comment faire !
    Mais je pense aussi qu'il faut l'utiliser

    ???????????????????????????????????????????

  7. #7
    Membre très actif
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 138
    Par défaut
    Si tu ne comprends pas, il faut que tu utilise un debugueur (par exemple celui d'eclipse) pour que tu voie exactement ce qui se passe.

  8. #8
    Membre confirmé Avatar de fabred
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2007
    Messages : 180
    Par défaut
    Mais je l'est deja utiliser le debugger !
    ca fait deux jour que je suis dessus !

    J'ai du oublié un truc pour faire marché l'observer observable !

  9. #9
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Sur cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    addObserver(new PaneDossier(null,null));
    ton instance de PaneDossier est crée mais n'est pas affetée à une variable (à part celle de la liste des observers, mais tu n'y as pas accès).
    Il est donc impossible que tu aies ajouté ce panel dans ton interface graphique (tu as dû en ajouter une autre instance), et donc tu ne peux pas voir l'effet du setText...

  10. #10
    Membre expérimenté

    Étudiant
    Inscrit en
    Mai 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 200
    Par défaut
    Oui rom a tout a fait raison : quand tu ajoute ton observer tu doit utiliser le PaneDossier de ton interface.

  11. #11
    Membre confirmé Avatar de fabred
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2007
    Messages : 180
    Par défaut
    OAUISSSSSSSSSSSSSSSSSSS !!!!!!!!!!!!!!!!!

    Ca marche, en fait j'ai rajouté l'observable dans le constructeur de l'observer
    et ca marche !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    Merci floflo !!!
    Merci à tous de votre aide !!!!!!!!!!!!!!!!

  12. #12
    Membre confirmé Avatar de fabred
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2007
    Messages : 180
    Par défaut
    Yeah, 140 messages !!!!

    me voila membre habiuté !

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

Discussions similaires

  1. [Débutant] Création de JPanel, Observable/Observeur
    Par badich dans le forum Débuter
    Réponses: 4
    Dernier message: 21/05/2014, 16h37
  2. MVC et Observer
    Par oxor3 dans le forum CORBA
    Réponses: 6
    Dernier message: 16/06/2005, 21h58
  3. [Observateur] Précisions sur le design pattern Observer [UML]
    Par joquetino dans le forum Design Patterns
    Réponses: 2
    Dernier message: 07/10/2004, 22h35
  4. [DP] observer-observable
    Par schousso dans le forum Général Java
    Réponses: 4
    Dernier message: 15/05/2004, 00h45
  5. Interfaces, Pattern Observer
    Par IProg dans le forum Langage
    Réponses: 8
    Dernier message: 18/12/2003, 14h11

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