JTable Jeu De Couleur De La Cellule À La Valeur Spécifique
Je suis en train d'écrire une méthode qui, pour des paramètres donnés (la valeur, la couleur), définit la couleur sur l'arrière-plan d'une cellule qui a une valeur égale à cellValue.
Ce que ma méthode ne fait est, il définit la couleur sur le fond de l'une des cellules pour l'ensemble de la ligne et lorsque je sélectionne la ligne sur la table, et je veux méthode de définir les couleurs à la colonne (où cellValue est égale à la valeur) à chaque fois que j'appel de la méthode.
void setCellBackgroundColor(boolean cellValue, final Color color) {
List<List<Object>> data = tView.getTTableModel().getData();
for (int row = 0; row < data.size(); row++) {
for (int col = 0; col < data.get(row).size(); col++) {
TableCellRenderer renderer = tView.table.getCellRenderer(row, Col);
Component component = tView.table.prepareRenderer(renderer, row, col);
boolean bValue =
TDataTypeRenderer.parseIntoRealValue(
data.get(row).get(col)
)
);
if (bValue == cellValue) {
component.setBackground(color);
}
}
et prepareRenderer est bon et nécessaire de façons possibles (a colonne et les lignes de coordonnées), mais fait partie de la remplacer JTables méthodes qui n'ont pas de boucle à l'intérieur de la ligne & colonnes, résultat de moteur de rendu (prepareRenderer) devrait être une seule instance que des boucles à l'intérieur de la vue, note prepareRenderer déteste le vide JTables vue, ont pour tester si les lignes > 0 avant d'appeler le(s) est/sont peints
OriginalL'auteur Xerath | 2014-08-01
Vous devez vous connecter pour publier un commentaire.
Essayer avec substituée
prepareRenderer()
méthode comme suggéré par @mKorbel.exemple de code:
Lorsque sélectionné en première ligne:
Lorsqu'il est sélectionné deuxième ligne.
Lire la suite...
MODIFIER
Que par votre dernier commentaire
Oui il suffit de supprimer la vérification de la ligne sélectionnée.
merci pour le partage de connaissances.
Merci les gars, je comprends maintenant où est le problème.
Je l'ai mise à jour mon code afin de sélectionner uniquement les cellules de la ligne sélectionnée.
Hey encore une fois, mais ce n'est qu'en sélectionnant lorsque je clique sur la table. Est-il possible de changer de couleur avec cliquant sur le bouton (sélectionner) rangée sur la table ?
OriginalL'auteur Braj