Bonsoir à tous ,
J'ai une question : Est ce qu'il est possible d'enregistrer un objet (ca c'est possible , je sais ;-)) mais de decider de l'affichage pour cet objet dans la jlist
Merci
Bonsoir à tous ,
J'ai une question : Est ce qu'il est possible d'enregistrer un objet (ca c'est possible , je sais ;-)) mais de decider de l'affichage pour cet objet dans la jlist
Merci
si tu veux modifier l'affichage des éléments de la JList, il faut utiliser un ListCellRenderer custom et l'enregistrer dans la JList.
en fait,
Ce que je voulais dans la jlist:
c'est que si j'enregistre un objet, on ne vois pas object@ 13456753236996.... mais plutot certaines valeurs de variables membres.
avec le listcellrenderer je n 'ai pas vu de methode le permettant.
j'ai peut-etre neanmoins trouve la solution , il faudrait redefinir la methode toString() de l'objet
le renderer par défaut de JList utilise toString. Un listCellRenderer personnalisé peux afficher tout ce qu'il veux (texte, image, bouton, formes géométrique, ....). C'est le role de sa méthode getListCellRendererComponent
ha oui j ai compris jai cree une classe heritant de jlabel et implementant cellrenderer
j ai du implementer la methode :
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
l objet passe en parametre , je l ai caste et jai pu afficher ce qu il me plaisait.
en fait si j ai bien compris DefaultCellRenderer lui-meme herite de jlabel.
Juste encore une question avant de passer en resolu : Est ce normal que je doive faire un setviewportview de ma jlist a chaque fois que j ajoute un element pour pouvoir le voir?
non. Montre nous ton code d'ajout. Normalement le rafraichissement est automatique.
Partager