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 :

Probleme de réaffichage de composant


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut Probleme de réaffichage de composant
    Bonjour,
    j'aimerai cacher certaint element dans un gridLyaout qui n'apparaitrait qu'au clic sur un JRadioButton.






    sur cette image je voudrais cacher la ligne discount: et celle d'en dessous
    soit 2 JLabel et 4 JTextfiled.

    poru cela je les est bein definit a setVisible(true);

    et dans mon actionLIstener qque voici :
    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
     
    public void actionPerformed (ActionEvent evt) {
    		/*on active l'affichage des champs spectifiques au discount */
    		reduction = true;
    		//definir le code pour le choix du syteme monetaire de la reduction
    		Object obj = evt.getSource();
    		JRadioButton o = (JRadioButton) obj;
     
    		System.out.println("on est dans action" );
    		euroValueData.setVisible(true);     
    		livreValueData.setVisible(true);    
    		dollarsValueData.setVisible(true);		
    		euroEquivalence.setVisible(true);    
    		livreEquivalence.setVisible(true);  
    		dollardEquivalance.setVisible(true);
    		discount.setText("Discount :");
    		this.updateUI();
     
     
     
    	}
    pour le rafraichissement j'ai utilise "this.updateUI();" je ne sais aps si c'est la bonne methode non plus.


    Et j'obtient une belle 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
    29
     
    on est dans action
    true
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at CadrePrincipal.actionPerformed(CadrePrincipal.java:174)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.JToggleButton$ToggleButtonModel.setPressed(Unknown Source)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(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.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(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)
    qui pointe sur mon premier setVisible(true)

    voilu

  2. #2
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    j'ai fini par trouver l'erreur probleme d'instantiation meme si je ne comprend pas pourquoi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private JTextField euroValueData = null; 
     
    makeJTextFieldEditable(euroValueData,aCacher);
    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
     
     
    private void makeJTextFieldNotEditable(JTextField jTextField,Boolean affiche)
    	{
    		jTextField = new JTextField();
    		jTextField.setEditable(false);
    		this.add(jTextField);
    		if((affiche)||(reduction))
    		{
    			jTextField.setVisible(true);
    			System.out.println("on affiche le"+jTextField );
    		}
    		else 
    			jTextField.setVisible(false);
    	}
    pour moi ce code instancie bien mon JTextfiled euroValueData
    en rajoutant une methode plus d'exception je n'ai toujours pas de reaffichage de mes coomposants.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public void init()
    {
    		euroValueData = new JTextField();
    		livreValueData = new JTextField();
    		euroTotalCost =  new JTextField();
    		discount = new JLabel();
    		dollarsValueData = new JTextField();
    		euroEquivalence  = new JTextField();
    		livreEquivalence  = new JTextField();
    		dollardEquivalance  = new JTextField();
    	}
    EN tout cas si quelqu'un peut m'expliquer pourquoi je suis obliger de passer par la methode init() pour ne plus avoir cette erreur dans le performed

  3. #3
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Ben on dirait que ton euroValueData est null

  4. #4
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    le fait de l'initalise dans makeJTextFieldEditable ne devrait pas annuler le null ?



    edit : jai enlever "null" ainsiq que la methode init et meme erreur qu'au debut
    l'instancasion makeJTextfiled ,n'est toujours pas suffisante

  5. #5
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Quand tu passes ta variable en paramètre à ta méthode, c'est une copie de ta variable qui est modifiée, et pas ta variable elle-même.

    Dans ta méthode makeJTextFieldNotEditable() enlève l'argument jTextField et instancie/modifie directement ta variable membre euroValueData.

  6. #6
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    si je te comprend bien enlever le parametre de ma methode MakeJTextFiledNotEditable

    et faire exactement ce que je faisais dans la methode init()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public void MakeJTextFiledNotEditable()
    {
    		euroValueData = new JTextField();
                              euroValueData.setVisible(false);
                             euroValueData.setEditable(false);
     
    		...
                             ....
    }
    edit:
    j'ai trouver une solution qui marche par rapport a ce que tu me disait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public JTextFiled  MakeJTextFiledNotEditable(){}
    et
    euroValueData = MakeJTextFiledNotEditable();
    la liason est bien faite et sa affihce ce queje veux maintenant mon probleme venait du travail en copie

    merci

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

Discussions similaires

  1. [VBA] Problem de suppression de composant
    Par jesus144 dans le forum IHM
    Réponses: 9
    Dernier message: 26/04/2006, 10h03
  2. [GridbagLayout] probleme de taille de composants.
    Par berg dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 17/03/2006, 22h06
  3. petit probleme de rafraichissement de Composant
    Par kef1 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 03/03/2006, 12h21
  4. [AWT] probleme de réaffichage
    Par thomasletiers dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 19/01/2005, 15h23

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