JavaFX HTML样式(或等效)标签

Mic*_*rry 15 styles javafx javafx-2

在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>");
Run Code Online (Sandbox Code Playgroud)

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

Col*_*iza 9

您可以尝试使用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);
Run Code Online (Sandbox Code Playgroud)

  • Jason,尝试谷歌搜索“JavaFX Markdown”,这可能会也可能不会帮助您开发解决方案。 (2认同)

Avi*_*vik 8

伪选择器可能是一种解决方法,但遗憾的是大部分都不支持 - http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html#introlimitations.对于控件中的Rich Text Support,它们将由JavaFX8提供 - https://bugs.openjdk.java.net/browse/JDK-8091709.