Java Textfield 2色

时间:2017-06-26 20:53:57

标签: java javafx colors textfield

有人知道如何在Java文本字段(Java FX)(标签上)的一个句子上放置两种不同的颜色吗?我也在使用CSS,但更喜欢在课堂上直接设置它。

2 个答案:

答案 0 :(得分:2)

您需要使用 TextFlow

  

富文本和双向支持

     

您可以使用TextFlow布局窗格创建多个Text节点并将它们放在单个文本流中。 TextFlow对象使用每个Text节点的文本和字体,但忽略包装宽度以及其子项的x和y属性。 TextFlow对象使用自己的宽度和文本对齐来确定每个子项的位置。示例39-12显示了三个Text文本节点,这些节点在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

以上示例将生成带有红色,橙色和绿色(并具有不同样式)的 Hello Bold World 。除非您需要严格的CSS解决方案,否则无法使用TextField完成您想要的任务。 TextFlow是要走的路

答案 1 :(得分:0)

使用两种不同的标签!鉴于您似乎已经知道如何使用它们,只需将文本与标签分开并使用它们来设置颜色。