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 :

Rafraichissement Contenu JPanel


Sujet :

AWT/Swing Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 36
    Points : 37
    Points
    37
    Par défaut Rafraichissement Contenu JPanel
    Bonjour

    Je n'arrive pas à "repaint()" un panel j'ai tout essayé (repaint, revalidate des parents, des ancetres...) mais sans résultat il s'agit d'un panel GridBagLayout dont je dois recharger le contenu à partir d'une autre méthode.
    Quand je ferme et que je ré-ouvre l'application, l'affichage est correcte mais quand je l'ajoute dynamiquement rien ne change au niveau de l'interface.

    Je compte vraiment sur votre aide !

    Voici le code du rechargement de contenu :

    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
     
    static void reloadPanTableContent(JPanel panTable) {
                    panTable.removeAll();
    		panTable.revalidate();
    		GridBagConstraints gridBagConstraints = getRowGridConstraints(0);
    		JPanel header = PanelsFactory.getInputDataHeader();
    		if (xxxxx == null)
    			gridBagConstraints.weighty = 1.0;
    		panTable.add(header, gridBagConstraints);
     
    		if (xxx != null) {
    			for (int i = 0; i < xxxxxx().size(); i++) {
    				xxx xxx = xxxx;
    				String[] tabPaths = getPathsFromInputList(xxxx);
    				String[] tabVarnames = getVarNamesFromInputList(xxxx);
    				JPanel row = PanelsFactory
    						.getInputRow(
    								xxx.getId(),
    								xxxx.getName()
    										+ (xxxx == 1 ? " *"
    												: ""), tabPaths, tabVarnames,
    								PanelsFactory.colors[i % 2]);
    				row.setBackground(PanelsFactory.colors[i % 2]);
    				panTable.add(row,
    						getRowGridConstraints(GridBagConstraints.RELATIVE));
    			}
    			JPanel endLine = PanelsFactory.getInputRow(0, null, null, null,
    					PanelsFactory.colors[xxxxx.size() % 2]);
    			gridBagConstraints = getRowGridConstraints(GridBagConstraints.RELATIVE);
    			gridBagConstraints.weighty = 1.0;
    			panTable.add(endLine, gridBagConstraints);
    			panTable.revalidate();
    }
    les xxx n'ont pas d'importance !!

    La suppression marche ! donc normalement ça devrait aussi marché dans l'autre sens :s !!

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Modifier le positionnement des composants graphiques, en ajouter/supprimer est de façon générale une très mauvaise idée. Le code est compliqué, ça peut générer des bugs pénibles, c'est déroutant pour l'utilisateur et ça ralenti de temps en temps l'exécution du programme.
    Tu dois certainement pouvoir utiliser un composant adapté à ton besoin.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 36
    Points : 37
    Points
    37
    Par défaut
    J'ai même essayé de rendre l'instance null à la fermeture et la ré-instancié mais ça n'a aucun effet, c'est comme si la JVM gardait en mémoire l'ancien objet alors qu'il s'agit d'un singleton.Ce qui m'étonne c'est que la suppression d'une ligne se voit ! mais pas l'ajout ! En fait pour être plus exacte c'est la suppression de tous les composants qui ne se voit pas !!

Discussions similaires

  1. rafraichissement contenu flash via javascript
    Par bluesman78 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/08/2010, 22h10
  2. rafraichissement de Jpanel
    Par kimlaw95 dans le forum Composants
    Réponses: 0
    Dernier message: 10/04/2009, 11h12
  3. Rafraichissement Infini "JPanel"
    Par Esab73 dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 12/03/2009, 13h56
  4. [debutant] : rafraichissement de JPanel
    Par sam.fet dans le forum AWT/Swing
    Réponses: 10
    Dernier message: 17/02/2006, 08h39
  5. [JPanel] Forcer le rafraichissement d'un sous panel
    Par tomca dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 18/05/2005, 16h49

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