JavaFXHTML样式(或等效)标签



在Swing中,使用HTML设计JLabel的样式非常简单——只需使用所需的HTML作为标签的文本,它就会得到适当的呈现。

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

然而,使用这种方法,如何将标签的一部分设置为某种风格并不明显,例如:

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

实现上述目标最简单的方法是什么?

您可以尝试使用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);

伪选择器本可以解决问题,但不幸的是,它们中的大多数还不受支持-http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html#introlimitations.至于控件中的富文本支持,它们将由JavaFX8-https://bugs.openjdk.java.net/browse/JDK-8091709.

相关内容

  • 没有找到相关文章

最新更新