2017-06-26 3 views
0

Kann jemand zwei verschiedene Farben in einem Java-Textfeld (Java FX) (auf einem Label) auf einen Satz setzen? Ich benutze auch CSS, würde es aber bevorzugen, es direkt in der Klasse zu setzen.Java Textfield 2 Farben

Antwort

2

Sie benötigen Textflow verwenden

Rich Text und Support Bidirektionale

Sie mehrere Textknoten erstellen und legen sie mithilfe der Textflow-Layout in einem einzigen Textfluss aus Feld. Das TextFlow-Objekt verwendet den Text und die Schriftart jedes Textknotens, ignoriert jedoch die Umbruchbreite und die X- und Y-Eigenschaften seiner untergeordneten Elemente. Das TextFlow-Objekt verwendet seine eigene Breite und Textausrichtung, um die Position jedes untergeordneten Objekts zu bestimmen. Beispiel 39-12 zeigt drei Textknoten mit unterschiedlichen Schriftarten und Text, die in einem TextFlow-Fensterbereich angeordnet sind.

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

Das obige Beispiel Hallo Bold Welt mit Rot, Orange und Grün (und mit verschiedenen Styling) produzieren. Was Sie wollen, kann nicht mit TextField getan werden, es sei denn, Sie wollen eine strikte CSS-Lösung. TextFlow ist der Weg zu gehen

0

Verwenden Sie zwei verschiedene Etiketten! Angesichts der Tatsache, dass Sie bereits wissen, wie man sie benutzt, trennen Sie Ihren Text einfach mit Etiketten und verwenden Sie diese, um die Farbe festzulegen.