【问题标题】:JavaFX HTML styling (or equivalent) labelsJavaFX HTML 样式(或等效)标签
【发布时间】:2012-09-23 12:40:27
【问题描述】:

在 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>");

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

【问题讨论】:

标签: styles javafx-2 javafx


【解决方案1】:

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

【讨论】:

  • kenai.com 的旧链接
【解决方案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 内部模型,但对于内容提供者来说却很糟糕。我只是想在配置文件中向我正在使用的开发人员提供一些富文本内容,并让他在 Java 中使用该内容。
  • Jason,尝试谷歌搜索“JavaFX Markdown”,这可能会或可能不会帮助您开发解决方案。
  • 如何让Label显示TextFlow?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-09
  • 1970-01-01
  • 1970-01-01
  • 2012-12-20
  • 1970-01-01
  • 1970-01-01
  • 2018-03-27
相关资源
最近更新 更多