2017-06-26 4 views
0

Est-ce que quelqu'un sait comment mettre deux couleurs différentes sur une seule phrase dans un champ de texte Java (Java FX) (sur une étiquette)? J'utilise aussi CSS, mais je préférerais le mettre directement dans la classe.Java Textfield 2 couleurs

Répondre

2

Vous devez utiliser TextFlow

Rich Text et Bidirectionnelle soutien

Vous pouvez créer plusieurs nœuds de texte et les mettre dans un seul flux de texte en utilisant la mise en page TextFlow vitre. L'objet TextFlow utilise le texte et la police de chaque nœud Text mais ignore la largeur d'enveloppe et les propriétés x et y de ses enfants. L'objet TextFlow utilise sa propre largeur et l'alignement du texte pour déterminer l'emplacement de chaque enfant. L'exemple 39-12 montre trois nœuds Text qui ont des polices et du texte différents dans un volet TextFlow.

String family = "Helvetica"; 
double size = 50; 

TextFlow textFlow = new TextFlow(); 
textFlow.setLayoutX(40); 
textFlow.setLayoutY(40); 

// Red 
Text text1 = new Text("Hello "); 
text1.setFont(Font.font(family, size)); 
text1.setFill(Color.RED); 

// Orange 
Text text2 = new Text("Bold"); 
text2.setFill(Color.ORANGE); 
text2.setFont(Font.font(family, FontWeight.BOLD, size)); 

// Green 
Text text3 = new Text(" World"); 
text3.setFill(Color.GREEN); 
text3.setFont(Font.font(family, FontPosture.ITALIC, size)); 

textFlow.getChildren().addAll(text1, text2, text3); 

Group group = new Group(textFlow); 
Scene scene = new Scene(group, 500, 150, Color.WHITE); 
stage.setTitle("Hello Rich Text"); 
stage.setScene(scene); 
stage.show(); 

https://docs.oracle.com/javase/8/javafx/user-interface-tutorial/text-settings.htm

L'exemple ci-dessus produira Bonjour Gras monde avec Red, Orange et Vert (et avec un style différent). Ce que vous voulez ne peut pas être fait avec TextField, sauf si vous voulez une solution strictement CSS. TextFlow est la voie à suivre

0

Utilisez deux étiquettes différentes! Étant donné que vous semblez déjà savoir comment les utiliser, séparez votre texte avec des étiquettes et utilisez-les pour définir la couleur.