1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
int col = 0, droiteMax = 0, larg = 0, largTotal = 0,
row = 0, tableX = 0, width = 0;
JTableHeader header = jXTable1.getTableHeader();
Enumeration columns = jXTable1.getColumnModel().getColumns();
jXTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
while(columns.hasMoreElements()){ // longueur maximum du texte ou du titre d'une colonne
TableColumn column = (TableColumn)columns.nextElement();
col = header.getColumnModel().getColumnIndex(column.getIdentifier());
width = (int)jXTable1.getTableHeader().getDefaultRenderer()
.getTableCellRendererComponent(jXTable1, column.getIdentifier()
, false, false, -1, col).getPreferredSize().getWidth();
for(row = 0; row<jXTable1.getRowCount(); row++){
int preferedWidth =
(int)jXTable1.getCellRenderer(row, col).getTableCellRendererComponent(jXTable1,
jXTable1.getValueAt(row, col), false, false, row, col).getPreferredSize().getWidth();
width = Math.max(width, preferedWidth);
}
header.setResizingColumn(column); // this line is very important
larg = width+jXTable1.getIntercellSpacing().width;
// larg = (larg*13)/10; // largeur de la colonne plus un peu pour desserrer
larg = larg+20; // mais c'est mieux un ajout fixe, pas en %,
// par ex. un blanc devant et derrière chaque donnée avant de l'écrire
largTotal += larg; // largeur totale de la table si utile
column.setWidth(larg);
}
} |
Partager