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 :

Création dynamique de Composants - Problème de rafraichissement


Sujet :

AWT/Swing Java

  1. #1
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 141
    Points : 128
    Points
    128
    Par défaut Création dynamique de Composants - Problème de rafraichissement
    Bonjour,

    Je crée des JComboBox et des JTextField dynamiquement lorsque je change la valeur de mon JComboBox

    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    // class extends JFrame
     
    private ArrayList _listComposants;
    private JComboBox _firstCombo;
    private JTextField _firstText;
    private JScrollPane _compositionScPane;
    private JPanel _compositionPane;
     
    public Constructeur(){
         _firstCombo = new JComboBox();
         _firstText = new JTextField();
         _listComposants = new ArrayList();
     
         //remplissage de _firstCombo 
     
         _listComposants.add(_firstCombo);
         _listComposants.add(_firstText); 
     
         refreshComposants();
          Container contentPane = this.getContentPane();
         contentPane.setLayout(new BorderLayout());        
         contentPane.add(_compositionScPane,BorderLayout.EAST);
         this.setSize(600, 430); 
     
         _firstCombo.addItemListener(new ItemListener(){
           public void itemStateChanged(ItemEvent e) {
             if(e.getStateChange() == ItemEvent.SELECTED) {
                 JComboBox _aCombo = new JComboBox();
                 JTextField _aText = new JTextField();
     
                 for(int i = 0; i<_listComboBoxDesignation.size() ; i++){
                     //remplissage de ma JComboBox
                     _aCombo.addItem(_listComboBoxDesignation.get(i));
                 }
     
                 _listComposants.add(_aCombo);
                 _listComposants.add(_aText);
     
                 refreshComposants();
             }
           }
         });
    }
     
    /**
     * Rafraichi l'affichage des ComboBox
     */
    private void refreshComposants(){
      _compositionPane= new JPanel();
      _compositionPane.setLayout(new GridLayout((_listComposants.size()/2),2));
     
      for(int i = 0;i<(_listComposants.size()/2);i++){
          _compositionPane.add((JComboBox) _listComposants.get(i));
          i++;
          _compositionPane.add((JTextField) _listComposants.get(i));
      }
      _compositionScPane = new JScrollPane(_compositionPane);
     
     
      _compositionPane.paintAll(_compositionPane.getGraphics());
      _compositionPane.repaint();
      this.paintAll(this.getGraphics());
      this.repaint();
    }
    Le probleme est que ceci ne marche pas du tout, quand je sélectionne un Item parmi ma première JComboBox alors tout mon panneau contenant mes JComboBox et mes JTextField s efface ...
    Si quelqu'un a une idée pour rafraichir correctement mon panneau ca serait sympa !

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Tu pourrais utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SwingUtilities.updateComponentTreeUI(tonContainer);
    J'avais du faire quelque chose dans ce genre là aussi pour un programme et j'utilisais ca

  3. #3
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 141
    Points : 128
    Points
    128
    Par défaut
    J'avais deja essayer ça et ça ne marche pas non plus !
    Je vois vraiment pas comment rafraichir cette fenetre, ou bien je me plante completement dans mon code ...

    EDIT : Si quelqu'un veut tous le code de ma classe je peut lui envoyer en mp ...

  4. #4
    Membre averti Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Points : 437
    Points
    437
    Par défaut
    envois le code.

Discussions similaires

  1. accélérer la création dynamique de composants
    Par Melodie dans le forum Débuter
    Réponses: 14
    Dernier message: 16/04/2009, 17h34
  2. Création dynamique de composants
    Par tsikpemoise dans le forum JSF
    Réponses: 3
    Dernier message: 01/12/2008, 17h30
  3. création dynamique de composants et jscrollbar
    Par restricteur dans le forum AWT/Swing
    Réponses: 15
    Dernier message: 12/09/2007, 16h18
  4. Création dynamique de composants
    Par persam dans le forum Delphi
    Réponses: 3
    Dernier message: 09/01/2007, 10h58
  5. Création dynamique de composants et destruction
    Par cpdump dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/01/2005, 17h57

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