mina1985
Messages postés2Date d'inscriptionvendredi 7 novembre 2008StatutMembreDernière intervention 7 juin 2009
-
15 mai 2009 à 15:36
manlap
Messages postés17Date d'inscriptionvendredi 4 janvier 2008StatutMembreDernière intervention28 juin 2010
-
18 mai 2009 à 10:25
Bonjour
j'utilise JTable pour afficher des données, mais ces données
sont un peu longues et je n'arrive pas à visualiser toute l'information
dans les cellules de JTable. il y a une partie qui reste invisible.
en effet, les cellules de mon tableau contiennent des informations de
type string qui sont très longues donc elles ne sont pas visibles il
reste toujours une partie cachée et ce que je veux faire c'est d'adapter la taille de chaque cellule à son contenu
Comment personnaliser ma table pour qu'elle m'affiche dans chaque cellule la totalité de son contenu ?
Est ce que JTable posséde des méthodes pour redimensionner ces
cellules pour qu'elle affiche tout le contenu ?
comment faire svp ?
manlap
Messages postés17Date d'inscriptionvendredi 4 janvier 2008StatutMembreDernière intervention28 juin 2010 18 mai 2009 à 10:25
Bonjour,
Sur un changement Model de la JTable public
void tableChanged(TableModelEvent e)
Il faut que tu calcules pour chaque colonne la taille préférée de cette dernière.
public void tableChanged(TableModelEvent e) {
super.tableChanged(e);
TableColumnModel modeleColonne = this.getColumnModel();
TableModel modele = this.getModel();
int total = modeleColonne.getColumnCount();
Font maFont = new Font(null, Font.PLAIN, 14);
FontMetrics fontMetrics = getFontMetrics(maFont);
// balaie toutes les colonnes
for(int i = 0; i < total; i++) {
int taille = 0;
int total2 = modele.getRowCount();
// teste toutes les lignes d'une colonne et conserve la plus grande cellule
for(int j = 0; j < total2; j++){
// Partie determinant la taille de la cellule de ligne j et de colonne i
if (modele.getValueAt(j, i) != null) {
int taille2 = fontMetrics.stringWidth(modele.getValueAt(j, i).toString());
if (taille2 > taille) {
taille = taille2;
}
}
}
modeleColonne.getColumn(i).setPreferredWidth(taille);
}
}