Ajuster automatiquement la Jtable Colonne pour s'adapter contenu
Je suis en train d'essayer de correspondre à la JTable la largeur de la colonne en fonction des données à l'intérieur. Mon Code:
for(int column = 0; column < gui.testsuiteInfoTable.getColumnCount(); column ++){
int width =0;
for (int row = 0; row < gui.testsuiteInfoTable.getRowCount(); row++) {
TableCellRenderer renderer = gui.testsuiteInfoTable.getCellRenderer(row, column);
Component comp = gui.testsuiteInfoTable.prepareRenderer(renderer, row, column);
width = Math.max (comp.getPreferredSize().width, width);
System.out.println(width);
}
TableColumn col = new TableColumn();
col = gui.testsuiteInfoTable.getColumnModel().getColumn(column);
System.out.println(width);
col.setWidth(width);
gui.testsuiteInfoTable.revalidate();
}
}
Les tailles sont correctes, je suppose, mais les colonnes de la table encore tous de la même largeur! La table est intégré dans un composant ScrollPane dans un GridBagLayout est le problème? Merci pour toutes les suggestions.
OriginalL'auteur Hans En | 2013-07-25
Vous devez vous connecter pour publier un commentaire.
Si vous pouvez utiliser une autre bibliothèque, essayez Swingx (https://java.net/projects/swingx)
Là, vous avez une JXTable, avec une méthode "packAll()", qui fait exactement ce que vous demandez
OriginalL'auteur chipukb
C'est tout ce dont vous avez besoin:
La table d'ajuster la largeur de chaque colonne automatiquement pour s'ajuster au contenu. Il n'y a pas besoin de contrôle quand déclencher le redimensionnement.
Il ressemble une fois la colonne de la table est redimensionnée à une plus grande valeur, il ne fait pas reculer vers le bas pour s'adapter à l'état actuel de colonnes.
OriginalL'auteur Jeronimo Backes
Lire la JTable API et de suivre le lien sur
How to Use Tables
. Dans ce tutoriel, ils utilisent lasetPreferredWidth(...)
suggérer une largeur d'une colonne.Vous pouvez également vouloir vérifier la Colonne De La Table De Réglage qui le fait pour vous. Cette solution peut également prendre en compte la largeur de l'en-tête de colonne.
OriginalL'auteur camickr