JAVA: Mettre une Image dans jTable Cellule
J'ai besoin d'afficher une image dans l'un des jTable cellules.
J'ai écrit ceci:
class ImageRenderer extends DefaultTableCellRenderer {
JLabel lbl = new JLabel();
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column) {
lbl.setText((String) value);
lbl.setIcon(new ImageIcon("/home/ariyan/Desktop/71290452.jpg"));
return lbl;
}
}
et ensuite utilisé comme ceci:
jTable1.getColumn(0).setCellRenderer(new ImageRenderer());
Mais cela n'a pas de travail
Comment je peux faire?
Grâce
OriginalL'auteur RYN | 2010-07-11
Vous devez vous connecter pour publier un commentaire.
JTable dispose déjà d'un moteur de rendu par défaut pour les images. Vous avez juste besoin de dire à la table de quel type de données contenues dans chaque colonne et il va choisir le meilleur moteur de rendu:
a) remplacer la getColumnClass() la méthode de la JTable ou le TableModel de retour de la classe de données dans la colonne. Dans ce cas, vous devez retourner un Icon.class.
b) ajouter une ImageIcon pour le modèle de table.
Maintenant la JTable utilisera la valeur par défaut de l'Icône de moteur de rendu pour cette colonne.
Voir aussi Comment Utiliser des Tableaux: Concepts: les Éditeurs et les moteurs de rendu.
OriginalL'auteur camickr
Hmm:
jTable1.getColumnModel().getColumn(0).setCellRenderer(new ImageRenderer());
peut-être?Voici l'extrait pertinent de certains test rapide code que j'ai mis ensemble pour vérifier rapidement je pense. Il affiche des icônes à partir d'un dossier (il suppose que tous les fichiers d'un dossier sont des icônes, de sorte que vous devriez tester avec quelque chose comme un XDG icône de thème sous-répertoire). Installer un modèle de table en premier, puis ajouter le rendu de cellule sur les colonnes:
Bien sûr que non. Mais bon j'ai posté en tant que concept, prototype de code. Pas un travail de chute dans la solution!
OriginalL'auteur user268396