Comment faire pour afficher plusieurs lignes dans une Cellule JTable
Je voudrais créer un JTable
comme l'image ci-dessous:
Qui java
classe sera utilisée et éventuellement comment?
veuillez pourquoi down_vote +1
OriginalL'auteur Mohammad Faisal | 2012-03-31
Vous devez vous connecter pour publier un commentaire.
fondamentalement, vous pouvez mettre n'importe quel type de
JComponents
à laJTable
cellule, tout dépend de si est contenu modifiable, c'est de parler de moi à propos de suitJTable
avec unTableColumn
sansTableHeader
JPanel
(GridBagLayout
) avecJLabels
ouJTextFields
JList
OriginalL'auteur mKorbel
Multiligne
JTable
cellule peut faire à l'aide d'un personnaliséTableCellRenderer
facilement. Utiliser les étapes suivantes pour créer leTableCellRenderer
.Étape 1: Créer
TableCellRenderer
Montre le code suivant pour créer un multi-ligne
TableCellRenderer
pourString[]
valeurs. Il est possible de changer laString[]
dans unVector
ou un autreCollection
typeÉtape 2: Définir
TableCellRenderer
dans leJTable
C'est mon testés capture d'écran:
quel wack, il ne fonctionne tout simplement pas. awt suce :'(
Je peux aller à travers elle, si vous partager votre code avec moi.
Ce besoin de quelques tripoter pour un redimensionnement automatique de la hauteur de ligne. L'esprit si je l'ajouter à votre réponse?
OriginalL'auteur Channa Jayamuni
Cela ne fonctionnera pas si vous utilisez un
DefaultTableModel
. Vous devez utiliser un modèle personnalisé pour votre table qui s'étendAbstractTableModel
et ont pour remplacer la méthodegetColumnClass()
, le long de avec d'autres méthodes abstraites.Vous permettra également de régler votre hauteur de ligne du tableau comme mentionné dans un commentaire ci-dessus.
La la documentation officielle d'Oracle précise cette.
OriginalL'auteur raicoder
Essayez ce code 🙂
OriginalL'auteur Shinwar ismail
OriginalL'auteur Shinwar ismail
En plus de la
TableCellRenderer
basé surJList<String>
comme suggéré par Channa Jayamuni vous pouvez construire un multi-ligne convertisseur sur le dessus de laDefaultTableCellRenderer
. L'astuce est d'utiliser le code HTML en fonction de laJLabel
de composants et d'ajuster la hauteur de la ligne en conséquence. Ceci préserve les caractéristiques du moteur de rendu par défaut.L'activation de ce convertisseur pour toutes les Chaînes à faire ce que vous voulez dans la plupart des cas:
La solution gère automatique de la hauteur de la ligne à un certain degré. I. e. il de ne pas diminuer la hauteur d'une ligne de table, si le contenu est mis à jour avec moins de lignes. C'est une tâche complexe, car il dépend du contenu d'une autre cellule de la même ligne.
OriginalL'auteur Marcel
Quand tout le tableau a de gros volume de données, l'utilisation de la barre de défilement est appliquée dans la JTable. Le JScrollPane vous offre de facilité de défilement pour faire défiler la barre de défilement et vous obtenez tout le contenu. Exemple Simple utilisant JTable:
Maintenant, vous pouvez modifier ce tableau en fonction de vos besoins
new JTable(data,col)
,col
variable ne peut pas être trouvé. Qu'est-il?Cela ne vient pas près de répondre à l'affiche originale de la question. Il veut sur plusieurs lignes dans une cellule de tableau.
je viens de faire une démonstration sur cette question, de sorte que, par conséquent, il peut le modifier
pas tout à fait. Il montre l'exemple d'une JTable, oui, mais qui peut être facilement obtenu à partir de tutoriels. La partie très difficile, c'est d'expliquer ou de montrer comment le faire sur plusieurs lignes dans une JTable cellule, et votre réponse ne répond pas à cela du tout, contrairement à mKorbel la bonne réponse.
OriginalL'auteur harry