J'ai ce code dans un ListCellRenderer qui étend JEditorPane. Le volet de l'éditeur n'affiche pas l'image mais affiche une "icône cassée". Qu'est ce qui ne va pas avec ça?balise img cassée avec JEditorPane/ListCellRenderer
public class TweetCellRenderer extends JEditorPane implements ListCellRenderer {
public Component getListCellRendererComponent(
javax.swing.JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus
) {
setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 6));
StringBuffer sb = new StringBuffer();
setContentType("text/html");
sb.append("<html><body>");
sb.append("<img src='http://www.google.co.uk/images/firefox/video.png' />");
sb.append("</body></html>");
System.out.println(sb);
setText(sb.toString());
setBackground(isSelected ? SELECTED_BG : BG);
setForeground(isSelected ? SELECTED_FG : FG);
return this;
}
}
J'ai essayé d'utiliser un ImageIcon. Cela fonctionnait quand mon CellRenderer était un JLabel avec une icône attachée, et du texte. Mais j'ai besoin d'avoir des hyperliens dans le texte, donc j'ai besoin d'utiliser un JEditorPane. J'ai essayé d'étendre JPanel et d'ajouter un ImageIcon (à l'intérieur de JLabel) et JEditorPane au JPanel mais cela ne fonctionne pas non plus - les images/texte sont dupliqués plusieurs fois les uns sur les autres pour une raison quelconque. Je souhaite que chaque élément du JList affiche une image 48x48 à gauche et à droite du texte formaté avec des liens hypertexte. Comment puis-je faire ceci? Merci –