J'utilise un JTABLE pour visualiser certaines données. Une colonne est destinée à montrer des données booléennes via une case à cocher. Je l'ai atteint en retournant Boolean.class de ma fonction de getcolumnClass de remplacement () dans mon modèle de table.
Malheureusement, cela se traduit par une cellule avec une case à cocher mais sans couleur d'arrière-plan appropriée pour la ligne actuelle. P>
p>
J'ai corrigé cela en utilisant la réponse à partir de ce message: JTABLE - Type de cellule booléenne - fond p>
P>
Maintenant, j'essayais d'augmenter le contraste des rangées alternatives. J'ai atteint cela en fixant la propriété appropriée du Nimbus LaF, que j'utilise. p> y a-t-il un moyen de changer cela? Est-ce que je fais ça complètement faux? Existe-t-il un meilleur moyen d'obtenir une couleur d'arrière-plan alternée et plus de contraste? P> Edit p> causé sur P> Version Java "1.7.0_17" Environnement Java (TM) SE Runtime (Build
1.7.0_17-B02) VM serveur Java Hotspot (TM) (version 23.7-B01, mode mixte), OS est Ubuntu 12.04 P>
blockQuote> p> P> < P> Comme vous le voyez, l'arrière-plan des cellules booléens est toujours l'ancien nimbus
Table.alternerowColor code> couleur. p>
4 Réponses :
Je serais à utiliser le concept de rendu standard pour ce travail, au lieu de jouer avec Nimbus Constantes P> Li>
Renderer fonctionne pour Nimbus, remplacez toutes les couleurs, à l'exclusion de JTableHeader P> Li>
code basé sur @CamickRs Rendu de la rangée de table a> p> li>
p>
Au début, cela avait l'air génial. Mais je ne reçois pas les mêmes résultats que vous. Ma colonne Boolean.class est excitée de ne pas ressembler aux autres. Malheureusement, je n'ai pas de SSCCE que je peux poster ici, mais je travaille dessus. EDIT: B> Très étrange. J'ai copié votre code en une nouvelle classe et j'ai toujours un autre look .
Tout est caché dans votre rendu, il y a quelque chose ..., s'il vous plaît assurez-vous que vous mettez Boolean (vrai / faux) à JTABLE PAS JCHECKBOX, ni quelque chose à propos de JCHECKBOX, vous n'êtes pas de chance Pour remplacer toutes les touches de JCHeckBox dans Uimanager
Comme je l'ai dit dans mon édition: même avec votre code, je reçois un résultat différent. Assez bizarre..
Version Java "1.7.0_17" Java (TM) SE Runtime Environment (Build 1.7.0_17-B02) Java Hotspot (TM) Server VM (version 23.7-B01, mode mixte), OS est Ubuntu 12.04
Ou (en lisant un commentaire à @MadProgrammer), Gui Builder a un bugs, leur cycle de vie n'a pas quelque chose avec les oracles standard JDK, ces oractions et leurs propres bugs ....
Gagnez des utilisateurs Désolé, j'ai édité des balises, je dois attendre, il y a quelques répondeurs de notre Zore, ils sont des utilisateurs *** Nix, mais de l'Australie aussi (si je me souviens bien)
Oui, je soupçonnais moi-même le constructeur de l'interface graphique Netbeans. Mais voyant que je reçois des résultats différents avec votre code, je soupçonne Java ou Ubuntu ..
J'étais (enfin) capable de le faire fonctionner. Le secret était de modifier les valeurs par défaut avant de créer quelque chose.
P> < Pré> xxx pré> p>
Merci, a l'air bien. Malheureusement, je travaille avec la plate-forme Netbeans ici, alors "avant de changer quelque chose" pourrait être difficile à déterminer. J'essaie actuellement d'utiliser un programme d'installation de module pour le faire au démarrage et voir comment ça se passe. J'essaie aussi @mkorbel réponse depuis sa LAF indépendante.
Belle solution. J'avoue qu'il vaut mieux changer le regard du niveau de L & F, plutôt que de la sauter comme d'autres réponses suggérées.
@Adamdyga Je vois beaucoup de personnes sautant droites et mettre à jour le JTABLE code> pour beaucoup de raisons, j'ai un problème personnel avec cela, car il coule étroitement la solution avec l'extension. Si vous pouvez trouver des moyens de permettre de garder le code portable, il doit valoir l'effort, IMHO
Pour résoudre ce problème, j'ai utilisé jxttable () strong> JTable () et j'ai utilisé votre propre préparateur pour les couleurs de rangée (vous pouvez utiliser Mkorbel's One's One, pour la mettre à la table des NetBeans, il suffit de personnaliser le code pour jxxtable () composant), parce que cette solution: JTABLE - type de cellule booléenne - fond ne fait pas Travailler pour des lignes multicolores pour moi. Ma plate-forme: Windows 7 32bit, version Java "1.7.0_21",
Java (TM) SE Runtime Environment (Build 1.7.0_21-B11),
Java hotspot (TM) Client VM (version 23.21-B01, mode mixte, partage), NetBeans IDE 7.3 P>
Voici png (ne pas avoir eu la réputation de la réputation: D): JXTABLES () . P >
Immédiatement après avoir réglé Nimbus L & F, ajoutez ces lignes:
UIManager.getLookAndFeelDefaults().put("Table:\"Table.cellRenderer\".background", Color.DARK_GRAY); UIManager.getLookAndFeelDefaults().put("Table.background",new ColorUIResource(Color.DARK_GRAY)); UIManager.getLookAndFeelDefaults().put("Table.alternateRowColor",Color.DARK_GRAY.brighter());
+1 Belle question, bonne prise, pourrait être une très bonne question pour les futurs lecteurs dans le cas où vous allez poster un SSCCE A >, court, runnable, compilable