Aligner du texte dans une JTable cellulaire, tandis que le maintien de JTable moteur de rendu par défaut?
J'ai une JTable qui ne belle alternances dans la coloration grâce à ce code:
table.setDefaultRenderer(Object.class, new BorderRenderer(new ColorRenderer(table
.getDefaultRenderer(Object.class), colorProvider)));
(Ici, le "colorProvider" contient le code qui tourne toutes les autres lignes gris clair.) J'ai une colonne dans laquelle je voudrais aligner le texte au centre. Si j'ai tout simplement mis un DefaultCellRenderer sur la colonne avec le centre de l'alignement horizontal, il remplace le tableau du moteur de rendu par défaut et je perds mes belles rayures.
Puis-je conserver les bandes et encore modifier l'alignement d'une colonne?
Pour compliquer encore les choses, j'ai le code ci-dessus dans une super-classe. Il est de mon sous-classes qui savent ce que la colonne(s) qu'ils aimeraient changer l'alignement sur.
Vous devez vous connecter pour publier un commentaire.
Une approche plus facile est d'utiliser Ligne De Tableau De Rendu. Ensuite, vous pouvez personnaliser l'alignement de la personne convertisseurs sans affecter la ligne de couleurs.
Si vous essayez de définir l'alignement sur la valeur par défaut renederer qui est définie dans votre superclasse, code, vous allez affecter à chaque cellule. Une option que vous avez est de créer une nouvelle sous-classe, soit
BorderRenderer
ouColorRenderer
(selon ce qui est le plus approprié), et dans songetTableCellRendererComponent
obtenir la valeur retournée par l'appel desuper.getTableCellRendererComponent
et de définir l'alignement sur qu'avant de retourner. Vous pouvez ensuite définir qu'une instance du moteur de rendu pour la colonne que vous avez besoin alignés.Grâce à la fois à afk et camickr qui m'a conduit à ma décision d'écrire un TableCellRendererWrapper:
Il n'est pas parfait, mais il fait le travail pour moi. Pour les utiliser je le fais:
utiliser cette méthode, il va aligner les deux en-tête et le contenu de la table d'centré. Cependant, vous pouvez modifier le CENTRE vers la GAUCHE ou la DROITE de l'alignement.