Javafx Comment ne pas s'appliquer un style css à l'Étiquette
dans mon IHM Java, j'ai environ 50 étiquettes. Tous d'entre eux vont être formaté à l'aide de feuilles de styles CSS. Mais il y en a 5 pour qui je veux changer la couleur de la police à l'aide d'un composant ColorPicker comme ce
Color ch = lineCommentColorPicker.getValue();
if (ch != null) {
lineCommentColorLabel.setTextFill(ch);
}
Ma question. Comment puis-je éviter que la couleur que je défini à l'aide de la setTextFill méthode sera remplacé à nouveau par le style CSS des règles définies pour la classe ".label"
.label
{
-fx-text-fill: black;
-fx-font-weight: bold;
-fx-font-size: 12;
}
Vous devez vous connecter pour publier un commentaire.
Vous pouvez supprimer le style de l'étiquette de ensemble avec
et appliquer des styles. Ou vous pouvez ajouter un styleclass aux autres étiquettes à l'exception de ceux que vous souhaitez colorer manuellement comme ceci:
et
Informations De Fond
Il y a quelques informations sur vos préférences dans le JavaFX CSS guide de référence:
Note également qu'une application n'a qu'un seul l'agent utilisateur de la feuille de style qui est généralement intégré dans la norme de la feuille de style pour JavaFX (par exemple, modène.css pour JavaFX 8). Généralement, les applications ne remplace pas cette feuille de style.
Donc, votre scène de la feuille de style, qui définit le remplissage du texte de l'étiquette sera de préférence des cours de code en ligne qui définit le remplissage du texte de l'étiquette et de la règle css prendra effet à chaque fois que l'interne en Charge de la mise en œuvre décide de applyCss pour le graphe de scène.
Solutions Possibles
Liaison
Un hacky façon de contourner cela est la déclaration suivante:
Cela fonctionne car une valeur limite ne peut pas être définie. Une fois que vous faire un bind, le CSS de mise en œuvre ne peut pas réinitialiser l'étiquette de remplissage à une autre valeur.
Prenez soin de vos règles de style
Une autre façon de le gérer est de s'assurer que vous ne définissez pas
-fx-text-fill
dans votre scène de la feuille de style pour les étiquettes que vous souhaitez personnaliser le texte de remplissage dans le code. Qui est, essentiellement, Roland "myclass" ou de supprimer "étiquette" styleclass solution.Modifier le UserAgent de la feuille de style
Vous pouvez également copier la norme JavaFX feuille de style, de le modifier directement, et le mettre sur votre application à l'aide de setUserAgentStylesheet, alors vous pouvez le remplacer dans le code css réglages effectués par l'utilisateur de l'agent de la feuille de style. Je n'avais considère que c'est vous déployez contrôlé JavaFX (par exemple, comme une application autonome de déploiement) et sont OK pour fusionner dans les changements à l'agent utilisateur de la feuille de style à chaque mise à jour du runtime.