Centrer les intitulés des en-têtes - JTable
Bonjour à tous,
J'essaye désespérement de centrer le titres des en-têtes de mes colonnes d'un JTable.
J'ai essayé le code qu'il y a dans la FAQ:
Code:
1 2
| TableCellRenderer headerRenderer = table.getTableHeader().getDefaultRenderer());
((DefaultTableCellRenderer) headerRenderer).setHorizontalAlignment(DefaultTableCellRenderer.CENTER); |
J'ai également essayé de mettre de l'html dans mes titres, mais toujours rien.
Mon application utilise le look&n&feel du système (peut-être le problème vient de là ?)
J'ai donc essayé de récupérer l'UI, de mettre en centré avec une classe interne, puis de refixer l'UI, mais ça ne fonctionne pas :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| public Table (TableModel tableModel) {
super (tableModel);
this.getTableHeader ().setReorderingAllowed (false); // On ancre les colonnes (on interdit les utilisateurs de les bouger)
TableHeaderUI tableHeaderUI = this.getTableHeader ().getUI ();
this.getTableHeader ().setDefaultRenderer (new HeaderRenderer ());
this.getTableHeader ().setUI (tableHeaderUI);
}
class HeaderRenderer extends DefaultTableCellRenderer {
public HeaderRenderer () {
setHorizontalAlignment (SwingConstants.CENTER);
setOpaque (true);
setBorder (UIManager.getBorder ("TableHeader.cellBorder"));
}
public void updateUI () {
super.updateUI ();
setBorder (UIManager.getBorder ("TableHeader.cellBorder"));
}
} |
Ce code me centre bien les titres, mais me perd le look&n&feel sur les en-têtes des colonnes : je me retrouve avec des en-têtes sans fond ni bordure.
Avez vous une idée ?
Merci d'avance,
Elhina