Problème d'Affichage dans un Panel

Steph115 Messages postés 163 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 3 février 2012 - 14 avril 2008 à 22:48
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 15 avril 2008 à 09:29
Bonjour,

J'utilise une JDialog toute simple avec un JTree et un JPanel.
Quand je choisis un élément dans le JTree ca me l'affiche dans le JPanel.
Jusque la tout simple j'utilise le composant JImagePanel qui marche super bien dans ma JFrame.

Mais la ca devient bizzare.
La première fois que je clique sur l'élément rien ne s'affiche et c'est les fois suivantes ou je cliques dessus que ca s'affiche correctement.
J'ai mis un trace dans le paintComponent de JImagePanel mais il est bien appelé tout le temps.
Le chemin de l'image est correct je l'ai testé en dur.

Voici la partie du code qui affiche l'image :
Rien de bien compliqué je récupère l'image que je fournit au JImagePanel et j'affiche le Panel dans mon jPanel1 existant.
Puis j'utilise updateUI() pour afficher les modifications.
            /** Accès au toolkit : */
            java.awt.Toolkit toolkit = java.awt.Toolkit.getDefaultToolkit();
            /** lecture de l'image : */
            Image image = toolkit.getImage(url);



            // On supprime tous les composants dans le Panel
            jPanel1.removeAll();
           
            // Panel avec Image
            JImagePanel jp = new JImagePanel(image, 10, 0, true, true);
            jp.setSize(300, 300);
            jp.setLocation(10, 20);
            jPanel1.add(jp);
            jPanel1.updateUI();


Ce que je n'arrive pas à comprendre c'est pourquoi la premère fois ca ne s'affiche pas correctement ?

Merci encore de votre aide. ++ Nexus

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.

2 réponses

Steph115 Messages postés 163 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 3 février 2012
14 avril 2008 à 22:50
Petite précision mon jPanel1 n'a pas de layout et mon JDialog est en Border Layout.

Merci. ++ Nexus

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 39
15 avril 2008 à 09:29
Salut:

Penses à faire le rafraîchissement du JPanel qui est destiné à acceuillir les JImagePanel.

Utilises pour ce fait:

// content contient les JImagePanel
JPanel content = new JPanel();

// ...

content.removeAll();
content.revalidate();
content.repaint();
0
Rejoignez-nous