platon179
Messages postés237Date d'inscriptionlundi 20 mai 2002StatutMembreDernière intervention22 juillet 2011
-
7 janv. 2006 à 21:43
platon179
Messages postés237Date d'inscriptionlundi 20 mai 2002StatutMembreDernière intervention22 juillet 2011
-
8 janv. 2006 à 10:07
Bonjour a tous :)
Je bloque sur un problème probablement stupide concernant les JScrollPane....
J'ai une classe JListsDisplay qui étend JPanel, dont la méthode paintComponent(Graphics g) est redéfinie, et qui affiche graphiquement des listes chaînées (et oui, c'est un projet DUT.... ) ....
Je l'utilise pour initialiser un JScrollPane comme ceci :
JListsDisplay contenu = new JListsDisplay();
JScrollPane scroll = new JScrollPane(contenu);
Premier souci : lorsque le programme se lance, ce qui est affiché dans contenu l'est pendant un quart de seconde, puis s'efface....
Second probleme : lorsque je déplace les ascenceurs, le redessin de contenu ne se fait pas correctement... En fait, c'est comme si ce qui était affiché ne s'effacait....
Puis je fais un super.paintComponent dans les méthode paintComponent de JListsDisplay et de JScrollPane, donc je vois pas trop où est le souci....
En espérant avoir été assez clair... Si c'est pas le cas, je mettre un screenshot pour le probleme 2 :)
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 7 janv. 2006 à 23:11
Salut,
peut tu donner les codes de tes methodes paintComponent stp, juste pour
info dans un paintComponent dun conteneur favorise
'super.paintComponents' plutôt que 'super.paintComponent' .
platon179
Messages postés237Date d'inscriptionlundi 20 mai 2002StatutMembreDernière intervention22 juillet 20112 7 janv. 2006 à 23:24
Salut
Merci de ta réponse, voici le contenu des méthodes :
Dans JListsDisplay la méthode se présente comme ceci :
public void paintComponent(Graphics g)
{
super.paintComponent(g);
afficherListes(lists); // Comme tu dois t'en douter, affiche les listes graphiquement
}
Tout est encapsulé dans la classe JScrollableDisplay, dont je te mets le code utile ci-après:
public class JScrollableDisplay extends JPanel
{
JListsDisplay contenu = new JListsDisplay();
JScrollPane scroll = new JScrollPane(contenu);
platon179
Messages postés237Date d'inscriptionlundi 20 mai 2002StatutMembreDernière intervention22 juillet 20112 8 janv. 2006 à 10:07
Merci, j'ai trouvé pourquoi ca ne fonctionnait pas correctement...Je mets la solution ici, des fois que ca puisse aider quelqu'un
En fait, dans ma méthode afficherListes, j'utilisais un this.getGraphics() au lieu d'utiliser le Graphics passé en paramètre a paintComponent()...En remplaçant this.getGraphics() tout fonctionne comme il faut