【问题标题】:How to display a text with the style of an error in JavaFX?如何在 JavaFX 中显示带有错误样式的文本?
【发布时间】:2016-01-06 15:08:32
【问题描述】:

我目前正在使用 JavaFX 开发一个简单的文本编辑器,我想使用与 Microsoft Word 和许多其他文本编辑器使用的样式相似的样式来显示语法错误,如图所示。

Picture of a word with the style I want to reproduce.

我使用 javafx.scene.control.TextArea 显示文本,并且可以使用以下方法更改文本和背景颜色:

t.setStyle("-fx-background-color: black; -fx-text-fill: white);

我已经搜索了类似的 CSS 参数来更改单词的样式以重现这种样式,但我没有运气。

引用的 TextArea 显示整个文本,我现在关心的是在整个文本中重现所需的样式。但是我确实发现无法使用 TextArea 更改文本中子字符串的样式,并且可能的解决方案是使用来自 RichTextFX 的 StyleClassedTextArea。

【问题讨论】:

  • 是整个 TextArea 还是只包含不正确的单词?或者换句话说:到目前为止,您是否设法只用您的 css 标记了错误的单词?

标签: css text javafx styles


【解决方案1】:

你可以用这样的东西来强调它:

t.setStyle("-fx-border-insets: 0; -fx-border-width: 2px; -fx-border-color: red; -fx-border-style: hidden hidden solid hidden;");

下划线并不完全符合您的要求,但是虽然 javafx 可以解析任何有效的 css,但它不会从此处未提及的任何内容中为您输出任何样式:https://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html#introscenegraph 您可能已经知道这一点,但如果您不知道,您的限制与 javafx css 参考有关——您只能使用列出的语句。另外,如果您还没有,我强烈建议您查看参考(其中列出了所有可能的样式),也许您会找到您喜欢的组合。

编辑:

我有另一个想法,它不是一种超级动态的方法,但它应该可以完成工作。您可以使用 -fx-background-image 和带有“波浪”下划线的背景图像以及字体的确切高度和所需的行高,并使用 -fx-background-repeat 水平重复图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-30
    • 2017-01-02
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多