您可以使用Javafx的字体连接



我正在基于javafx实现文本编辑器。是否可以像在Intellij中使用相同的工作方式显示字体连字?

我在javafx API中找到了对连字支持的引用,但是我不知道这是否证明了有支持。

您可以使用tomas mikula richtextfx库。

https://github.com/fxmisc/richtextfx/

您在这里有很多选择:

1) InlineCssTextArea 使用

Node#setStyle(String cssStyle)

样式的方法

的文本对象
InlineCssTextArea

对于每个单词或行,您可以使用:

来设置不同的样式
InlineCssTextArea.setStyle(from,to,style);

我之前已经广泛使用了它,在同一行或行中具有不同的字体和样式。

2) StyleClassedTextArea 使用Node#setStyleClass(String styleClass)方法来样式Text对象。您可以在样式表中定义样式类。

因此,假设您在application.css内部定义了5种具有不同字体的样式类。其中之一可能是...

.red { -fx-fill: red; }

因此您可以使用:

styleClassedTextArea.setStyleClass(from, to, "red");

这将文本呈现在红色的范围内。

3)有关更多信息,请检查https://github.com/fxmisc/richtextfx,它具有详细的描述。

您也可以在网络上搜索更多示例。

javafx将呈现所需的连接,但它没有能力选择可选的连接。跟踪添加API以启用此行为的问题是https://bugs.openjdk.org/browse/jdk-8091616。

另请参见来自OpenJFX开发邮件列表的此消息:https://mail.openjdk.org/pipermail/openjfx-dev/2022-october/036309.html

最新更新