2010-06-09 6 views
1

Quelqu'un peut-il expliquer comment je pourrais créer des en-têtes de ligne? J'ai déjà les textes de données et d'en-tête dans le JTable: tout ce que je veux savoir, c'est comment je peux utiliser un renderer de cellule pour prendre cette première colonne et la faire ressembler aux en-têtes de colonne rangée). À l'heure actuelle, son arrière-plan est blanc, il ressemble donc à des données régulières. Je veux qu'il apparaisse gris (ou non-opaque je suppose?). Oh, et ça ne devrait pas non plus être sélectionnable. Merci. Je viens de me rendre compte qu'il devrait aussi rester en place lors du défilement horizontal, c'est-à-dire qu'il devrait toujours apparaître sur l'écran même s'il y a une barre de défilement horizontale. Est-ce seulement possible? ** Mise à jour: ** J'ai réussi à obtenir à comme les en-têtes de ligne. Mais je ne suis toujours pas sûr de savoir comment empêcher le défilement. Des idées sur la façon d'empêcher le défilement horizontal sur la première colonne d'un JTable?Rendu de cellules personnalisé JTable pour créer l'en-tête de ligne

+0

Est-ce que je vous obtenez droit vous ne voulez pas utiliser le JTableHeader standard et préférez utiliser un moteur de rendu personnalisé pour que le premier datarow ressemble aux en-têtes? Sinon, cela aiderait http://java.sun.com/docs/books/tutorial/uiswing/components/table.html – stacker

+0

Pas exactement, le JTable a une ligne d'en-tête par défaut (horizontalement en haut). Je veux garder ça. Mais je veux aussi un en-tête COLUMN (verticalement) (pour apparaître dans l'index de la colonne 0..la première colonne). Est-ce que ça a du sens? Et cette colonne d'en-tête, je veux qu'elle ait le même aspect et la même impression que la ligne d'en-tête fournie par défaut. – hhj

Répondre

1

Quelque chose comme ce qui suit devrait le faire

table.getColumnModel().getColumn(col).setHeaderRenderer(new MyRenderer());