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:
J'ai également essayé de mettre de l'html dans mes titres, mais toujours rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 TableCellRenderer headerRenderer = table.getTableHeader().getDefaultRenderer()); ((DefaultTableCellRenderer) headerRenderer).setHorizontalAlignment(DefaultTableCellRenderer.CENTER);
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 :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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")); } }
Avez vous une idée ?
Merci d'avance,
Elhina
Partager