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

 Java Discussion :

getComponents non fonctionnelle


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Octobre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Octobre 2010
    Messages : 122
    Par défaut getComponents non fonctionnelle
    Cette boucle devrait parcourire tout les composants d'un JInternalFrame,
    puis modifier le contenu (text) après avoir trouvé le composant via son nom.

    Lors de l'execution du code, aucun des controls sont mis à jour avec les nouvelles données.

    J'attend vos suggestions.

    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
    private void findControl(String name, String text){
     
    	//label1.setText("r");
     
    	for (Component composant : getCreateClient().getComponents()) {
    		label1.setText("r");
    		composant.setEnabled(false);
     
    		if (composant.getName() != null) {
     
    			if (composant.getName() == name.trim()) {
    				System.out.println(composant.getName());
     
    				if (composant instanceof JFormattedTextField) {
    					System.out.println(text.trim());	
     
    					((JFormattedTextField) composant).setText(text);
    				}
    					break;
    			}
    		}
    	}
    }

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Tu appelles getComponents() sur quoi précisément ? Tu as loggués les composants retournée pour voir ?

    a++

  3. #3
    Membre confirmé
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Octobre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Octobre 2010
    Messages : 122
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,


    Tu appelles getComponents() sur quoi précisément ? Tu as loggués les composants retournée pour voir ?

    a++
    J'appel la méthode du JPanel (conteneur). Pour y lire les objets, afin de les manipuler.

    AdiGuba, aurais tu une solution ?

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Et ? Cela te retournes quels composants exactement ?

    a++

    [edit] Bien vu tchize_

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    composant.getName() == name.trim()
    On ne test jamais l'égalité de deux strings comme ça. Il y a une différence fondamentale entre
    string1 == string2
    et
    string1.equals(string2)

    !!!

  6. #6
    Membre confirmé
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Octobre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Octobre 2010
    Messages : 122
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    composant.getName() == name.trim()
    On ne test jamais l'égalité de deux strings comme ça. Il y a une différence fondamentale entre
    string1 == string2
    et
    string1.equals(string2)

    !!!
    Le première compare des valeurs dite primitives et le second compare les valeurs renvoyé par la méthode toString de l'instance indiquée. non

    Composant.getName => String
    name.trim() => String en supprimant les espaces des deux côtés.

    Voici après modification :

    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
    for (Component composant : getCreateClient().getComponents()) {
    			label1.setText("r");
    			composant.setEnabled(false);
     
    			if (!composant.getName().equals(null)) {
     
    				if (composant.getName().equals(name)) {
    					System.out.println(composant.getName());
     
    					if (composant instanceof JFormattedTextField) {
    						System.out.println(text.trim());	
     
    						((JFormattedTextField) composant).setText(text);
    					}
     
    					break;
    				}
    les erreur :

    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
    java.lang.NullPointerException
    	at view.frmPatient.findControl(frmPatient.java:278)
    	at view.frmPatient.RemplireFiche(frmPatient.java:249)
    	at view.frmPatient.update(frmPatient.java:300)
    	at java.util.Observable.notifyObservers(Unknown Source)
    	at model.Facade.setCurrentPatient(Facade.java:39)
    	at controller.FieldFocusListener.focusLost(FieldFocusListener.java:32)
    	at java.awt.AWTEventMulticaster.focusLost(Unknown Source)
    	at java.awt.Component.processFocusEvent(Unknown Source)
    	at javax.swing.JFormattedTextField.processFocusEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
    	at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
    	at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par SpeedOverflow Voir le message
    Le première compare des valeurs dite primitives et le second compare les valeurs renvoyé par la méthode toString de l'instance indiquée. non
    Non, la premier compare les instance, la deuxième les valeurs. En l'occurrence

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String s1 = new String("1234");
    String s2 = new String(s1);
    s1==s2; // false
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    			if (!composant.getName().equals(null)) {
    C'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!composant.getName()==null)

  8. #8
    Membre confirmé
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Octobre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Octobre 2010
    Messages : 122
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Non, la premier compare les instance, la deuxième les valeurs. En l'occurrence

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String s1 = new String("1234");
    String s2 = new String(s1);
    s1==s2; // false

    C'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!composant.getName()==null)
    Le mystère reste entier !

    Biensure, on compare leurs références en memoire et du faite qu'ils ne sont pas aux même endroit ils sont inégals.

    malgré cela, j'ai changé la première condition.

    ils n'effectue pas l'assignation

    pourquoiiiiiiiiiiiiiiiiiiii !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (composant instanceof JFormattedTextField) {
    System.out.println(text.trim());	
    ((JFormattedTextField) composant).setText(text);
    }

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

Discussions similaires

  1. Flash Disque non fonctionnel
    Par stanley dans le forum Composants
    Réponses: 2
    Dernier message: 18/07/2006, 12h18
  2. Code non fonctionnel sous IE
    Par Nip dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/06/2006, 14h59
  3. timage non fonctionnel !!
    Par micky13 dans le forum Delphi
    Réponses: 5
    Dernier message: 13/05/2006, 07h21
  4. Update non fonctionnel
    Par kissmytoe dans le forum Access
    Réponses: 7
    Dernier message: 07/03/2006, 18h37
  5. [REPORTS] Order BY non fonctionnel
    Par sdiack dans le forum Reports
    Réponses: 2
    Dernier message: 10/02/2006, 18h10

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