begin process at 2010 02 09 22:39:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Débutant(e)

 > 

Rafraichissement JPanel d'une JFrame


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Rafraichissement JPanel d'une JFrame

mardi 11 mars 2008 à 21:04:47 | Rafraichissement JPanel d'une JFrame

kishkaya

Bonjour,
J'essaie infructueusement de faire une classe héritée de JFrame et contenant une méthode permettant de changer le contenu de la JFrame. public void changerJPanel(JPanel pan);
Je rafraichis la JFrame qui ne contient qu'un JPanel avec ces méthodes :
getContentPane().removeAll();
        getContentPane().add(pan);
        getContentPane().validate();
Malheureusement, cela ne fonctionne pas parfaitement. Parfois, j'appelle un listener (au clic d'un bouton contenu dans le JPanel courant) qui appele cette méthode changerJPanel.

Le problème, qui se pose alors, est que la JFrame ne s'actualise pas vraiment, il faut promener la souris sur la JFrame pour que la rafraichissement se fasse petit à petit.

Connaitriez vous une astuce me permettant de modifier ma méthode changerJPanel pour corriger ce problème ? Pourriez vous m'expliquer le point faux de ma démarche ?

Merci pour votre aide

_Marikou
mercredi 12 mars 2008 à 18:43:50 | Re : Rafraichissement JPanel d'une JFrame

uhrand

Réponse acceptée !
C'est beaucoup mieux avec CardLayout:

        mainpanel = new JPanel(new CardLayout());
        panel1 = JPanel();
        panel2 = JPanel();
        panel3 = JPanel();
        mainpanel.add(panel1, "panel1");
        mainpanel.add(panel2, "panel2");
        mainpanel.add(panel3, "panel3");

        getContentPane().add(mainpanel, BorderLayout.CENTER);

...
        changerJPanel(mainpanel, true);//afficher le panel suivant
...
        changerJPanel(mainpanel, false);//afficher le panel précédent
...
    public void changerJPanel(JPanel pan, boolean next){
        if(next){
            ((CardLayout) pan.getLayout()).next(pan);
        }else{
            ((CardLayout) pan.getLayout()).previous(pan);
        }
    }
mercredi 12 mars 2008 à 19:18:36 | Re : Rafraichissement JPanel d'une JFrame

kishkaya

Merci pour le tuyau mais le problème est plus profond.

En fait il faut dire explicitement que le JPanel est invalidate() et forcer le repainting repaint(). Je sais pas trop a quoi c'est du mais comme je fais plusieurs requetes en même temps sur plusieurs BDD différentes, qu'il y a plusieurs Thread en fond qui tournent avec du JNI, le repaint du JPanel n'est pas appelé explicitement. Quand je fais un petit demonstrateur de changer de JPanel ca marche nickel

Merci pour le conseille du CardLayout. Mais le voyage de JPanel en JPanel est non prévu, en fait il n'y a pas d'ordre. J'accede à un lecteur RFID Pcmia (grâce à une DLL) je récupère des infos dans le Tag RFID et j'interroge deux BDD (Mysql et DB2) en fonction des résultats on va vers tel ou vers tel autre JPanel.

Cependant ton exemple est adaptable à ce cas avec un int ou lieu d'un boolean.

Merci pour l'aide.

PS: pour ceux qui auraient des problèmes de repainting de JFrame, il arrive que le JPanel soit bien repaint mais que la JFrame ne le soit pas, on peut de la même manière forcer le refraichissement.

_Marikou


Cette discussion est classée dans : jpanel, méthode, rafraichissement, jframe, changerjpanel


Répondre à ce message

Sujets en rapport avec ce message

pb d'utilisation de méthode d'une autre class [ par vincesc ] bonjourmon problème est le suivant :je créé un logiciel de mise à jour de page html qui ont toutes la même structure.j'utilise pour l'instant 3 class Bug d'affichage quand clic de souris [ par georhan ] Salut à tous :)Je suis en train de programmer une sorte d'interface avec JAVA-Swing, et franchement, j'en chie avec les évènements ! ;) Et oui, c'est Japplet et Jpanel [ par pong1980 ] Bonjour,je développe actuellement une applet qui hérite de JApplet.Dans cette applet j affiche le contenu d un classe qui hérite de JPanel, seulement scroll sur une JFrame [ par arsenelupin ] J'ai une JFrame sur laquelle je veux mettre une barre de défilement parce que y'en a beaucoup d'informations à afficher dessus. Dois-je passer par un Gestion de la mémoire [ par Pimousse77 ] Pimousse : débutant en javaBonjour,Mon problème est le suivant :J'aimerais savoir de quelle façon on est censés gérer la mémoire en java. Normallemen JLabel disparait sous JPanel [ par kaliel ] salut!!Dans une JFrame,j'ai un Jpanel qui contient une image en texture et un Jlabel qui contient une autre image. Le problème est que si je redimens rafraichissement JSPlitPane [ par munaron ] Bonjour à tous,J'utilise un splitpane; dans un de ses compartiments, j'ai mis un JPanel avec un scrollPane, sur le Jpanel j'ai rajouté d'autres compos prob rafraichissement [ par jdewalqu ] Bonjour,je réalise une application dans laquelle il y a une JToolBar et dans celle-ci il y plusieurs JPanel.seul deux JPanel sont affichées à la fois Sur une JFrame [ par Listener ] Bonjour, J'ai un petit souci au niveau d'une JFrame. Explications : Dans une Jframe A existe plusieurs boutons. Lorsque l'on presse sur un bouton une problème de création d'une image [ par jc_romeo ] BonjourJ'aimerai executer la fonction createImage dans un JPanel mais il me retourne null à chaque foisJ'ai donc pensé à remplacer le JPanel par un JF


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales