Java JTable change la couleur des cellules
Je voudrais faire une modifiables table, puis vérifiez les données afin d'assurer la validité de son. Je ne sais pas comment changer la couleur d'une seule cellule. J'aimerais obtenir une cellule, par exemple (0,0) et de la couleur de premier plan au rouge. J'ai lu les autres posts de SORTE que comme l'Oracle sur la coutume ColorRenderer, mais je ne vois pas comment je pourrais l'utiliser.
Grâce.
source d'informationauteur Matt
Vous devez vous connecter pour publier un commentaire.
Dire que la cellule que vous souhaitez rendre avec une couleur différente représente un état (je vais prendre Rejeté et Approuvé à titre d'exemples). Alors je dirais de mettre en œuvre une méthode dans ma table modèle appelé getStatus(int row) qui retourne l'état pour une ligne donnée.
Puis, quand c'est en place, j'irais sur la création d'une cellule de rendu responsable pour le rendu de la colonne de la cellule appartient à. Le rendu de cellule serait quelque chose dans les lignes de code ci-dessous.
Puis, lorsque le convertisseur est en place, il suffit de "s'appliquer", le moteur de rendu de la table avec le bout de code suivant:
Relatives à l'élaboration d'une cellule modifiable, il suffit de mettre en œuvre les isCellEditable(int rowIndex, int columnIndex) méthode dans votre modèle de table. Vous avez également besoin de mettre en œuvre la méthode
setValueAt(La valeur de l'objet, int rowIndex, int columnIndex) si vous voulez conserver la valeur qui fournit de l'utilisateur (qui, je suppose que vous faites!).
Une autre approche serait de modifier les données avant de l'enregistrer pour le modèle de table pour éviter valide la saisie de données.
La façon la plus simple est d'écrire un simple
TableCellRenderer
par l'extension de laDefaultTableCellRenderer
et d'écraser legetTableCellRendererComponent
méthode poursetBackground( Color.RED )
. Par exemple:C'est la façon la plus simple de couleur une Colonne ou une cellule dans une jTable.
D'abord il suffit de créer une classe simple de
CustomRenderer
Ce code est la colonne de la cellule de rendre
C'est pour effacer toutes les lignes précédentes à partir de votre tableau. Si vous ne voulez pas de simplement supprimer ces lignes
Je crois que la façon correcte de faire de la couleur en un tableau est par l'intermédiaire d'un
ColorHighlighter
. La table convertisseurs ont des problèmes de rendu des couleurs différentes dans la même colonne.Voici un exemple de comment utiliser des surligneurs. Dans ce cas, c'est pour mettre en évidence une cellule qui n'est pas modifiable.
}
et puis dans votre code pour setuping la table que vous ajoutez le surligneur et sa couleur paramètres: