【发布时间】:2017-06-26 20:53:57
【问题描述】:
有人知道如何在 Java 文本字段 (Java FX)(在标签上)的一个句子上放置两种不同的颜色吗?我也在使用 CSS,但更愿意直接在类中设置它。
【问题讨论】:
标签: java javafx colors textfield
有人知道如何在 Java 文本字段 (Java FX)(在标签上)的一个句子上放置两种不同的颜色吗?我也在使用 CSS,但更愿意直接在类中设置它。
【问题讨论】:
标签: java javafx colors textfield
富文本和双向支持
您可以使用 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 完成您想要的。文本流是要走的路
【讨论】:
使用两个不同的标签!鉴于您似乎已经知道如何使用它们,只需将文本与标签分开并使用它们来设置颜色。
【讨论】: