2010-09-03 5 views
1

Puis-je modifier l'en-tête de colonne dans l'onglet Jtable de "Nom" à "Nom" si je connais la position de la colonne? Je veux changer le nom de la colonne dans le deuxième ou le premier onglet, pas le dernier.Modifier l'en-tête de colonne dans JTable si je connais la position de colonne

Avec ce code, je ne peux modifier que l'en-tête de colonne dans le dernier onglet. J'ai 4 onglets.

JTableHeader th = table.getTableHeader(); 
TableColumnModel tcm = th.getColumnModel(); 
TableColumn tc = tcm.getColumn(0); 
tc.setHeaderValue("???"); 
th.repaint(); 

Répondre

1

Il vous suffit de remplacer votre index de colonne par l'utilisation de l'identificateur de colonne:

JTableHeader th = table.getTableHeader(); 
TableColumnModel tcm = th.getColumnModel(); 
TableColumn tc = tcm.getColumn(tcm.getColumnIndex("Name")); // may not work, see note below 
tc.setHeaderValue("???"); 
th.repaint(); 

Les TableColumnModel#getColumnIndex(Object) fonctionne avec un identifiant de colonne. La plupart du temps, l'identifiant de la colonne et la valeur de l'en-tête de la colonne sont identiques. Cependant, dans certains cas, ils peuvent différer (généralement en utilisant i18n pour l'en-tête de colonne). Mais dans ce cas, je suppose que vous avez identifié votre colonne avec un identifiant constant.

Questions connexes