pb débutant : gestion d'un événement de liste déroulante

 
Poster un nouveau sujet   Répondre au sujet    iprelax.fr Index du Forum -> Java
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
kyfren
dummy mioche
dummy mioche


Inscrit le: 26 Aôu 2003
Messages: 3

MessagePosté le: Mer Mar 31, 2004 4:30 pm    Sujet du message: pb débutant : gestion d'un événement de liste déroulante Répondre en citant

Bonjour à tous.

Je débute en Java et je dois afficher la valeur sélectionnée dans une liste déroulante à l'intérieur d'un champ texte.

Je suis bien parti mais apparemment, le texte "nouveau texte" ne s'insère pas dans le champ :

Voici mon script, d'avance merci.

Code:

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;   
import javax.swing.event.*;

public class New
{
   public static void main(String[] args)
   { 
      TextTestFrame2 frame = new TextTestFrame2();
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.show();
   }
}

class TextTestFrame2 extends JFrame

   public TextTestFrame2()
   { 
      setTitle("Editeur");
      setSize(WIDTH, HEIGHT);
      Container contentPane = getContentPane();

      // ajouter un panneau avec des champs texte
      JPanel panel = new JPanel();
     
      pRectangle = new ProprietesRectangle();
      panel.add(pRectangle);
     
      liste = new Liste();
      panel.add(liste);

      contentPane.add(panel, BorderLayout.SOUTH);     
   }     
   private ProprietesRectangle pRectangle;
   private Liste liste;
   private static final int WIDTH = 300;
   private static final int HEIGHT = 300;
}

class ProprietesRectangle extends JPanel implements ActionListener
{
  public ProprietesRectangle()
  {
    hauteurField = new JTextField("12", 3);   
     add(hauteurField);
  }
 
  public void actionPerformed(ActionEvent event)
  {
    /********************************************
       a cet endroit, le println fonctionne
       mais pas le changement de valeur du champ
    ********************************************/
    System.out.println("ça marche"); // fonctionne
    hauteurField.setText("nouveau texte"); // n'insère pas le nouveau texte dans le champ
  }
 
  private JTextField hauteurField;
}

class Liste extends JPanel
{
  public Liste()
  {
    JLabel figureLabel = new JLabel("Figure: ");
    listeDeroulante = new JComboBox(new String[] {"Cercle 1", "Rectangle 1", "Triangle 1"});
    add(listeDeroulante, BorderLayout.EAST);

    ActionListener listener = new ProprietesRectangle();
    listeDeroulante.addActionListener(listener);
  }
  private JTextField hauteurField;
  private JComboBox listeDeroulante;
}
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
gatwps
dummy mioche
dummy mioche


Inscrit le: 15 Avr 2004
Messages: 2

MessagePosté le: Jeu Avr 15, 2004 11:03 am    Sujet du message: tu ne travailles par sur le bon objet !!! Répondre en citant

tu instancies un objet pour l affichage dans ProprietesRectangle.class et un autre pour utiliser le listener dans Liste.class.
d ou le decalage (tu modifie un objet qui n est pas affiche)

Pour resoudre ce pb
dans TextTestFrame2

Code:
  pRectangle = new ProprietesRectangle();
      panel.add(pRectangle);
     
      liste = new Liste(pRectangle);
      panel.add(liste);


et pour ta classe Liste

Code:
class Liste extends JPanel
{
  public Liste(ProprietesRectangle listener)
  {
    JLabel figureLabel = new JLabel("Figure: ");
    listeDeroulante = new JComboBox(new String[] {"Cercle 1", "Rectangle 1", "Triangle 1"});
    add(listeDeroulante, BorderLayout.EAST);

  //  ActionListener listener = new ProprietesRectangle();
    listeDeroulante.addActionListener(listener);
  }
  //private JTextField hauteurField;
  private JComboBox listeDeroulante;
}



ton attribut hauteurField ne sert a rien dans liste d ou son passage en commentaire Cool
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    iprelax.fr Index du Forum -> Java Toutes les heures sont au format CET (Europe)
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Affilzen SARL : Mention légale