JavaFX的HTML样式(或等同物)标签(JavaFX HTML styling (or equi

2019-09-23 08:42发布

在Swing中,这是很轻松的风格的JLabel使用HTML - 你只是用你想要的文字标签的HTML,它被适当地渲染。

在JavaFX这是不可用,但我们可以通过设置特定标签(或节点一般)的样式setStyle()方法。

但是,使用这种方法不是很明显了如何设置标签的一部分是某种风格,例如相当于:

JLabel label = new JLabel("<html>Part of this <b>text is b</b>old and part isn't.</html>");

什么是实现类似上述的最简单的方法?

Answer 1:

伪选择可能是一个变通但不幸的是他们大多还不支持- http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html#introlimitations 。 -作为对照格式文本支持,他们将JavaFX8提供https://bugs.openjdk.java.net/browse/JDK-8091709 。



Answer 2:

您可以尝试使用到的TextFlow喜欢不同风格的文本节点合并

TextFlow textFlow = new TextFlow();

Text first=new Text("Part of this ");
first.setStyle("-fx-font-weight: regular");

Text second=new Text("text is b");
second.setStyle("-fx-font-weight: bold");

Text third=new Text("old and part isn't.");
third.setStyle("-fx-font-weight: regular");

textFlow.getChildren().addAll(first, second, third);


文章来源: JavaFX HTML styling (or equivalent) labels