当前位置: 首页 > 知识库问答 >
问题:

在RichTextFX中直接突出显示一个文本范围

万志专
2023-03-14

我目前正在尝试在RichTextFX中显示文件的内容,然后在带有红色背景的行上突出显示特定的字符范围,这表明该行存在问题。

我的代码整齐地显示了所有内容,但不幸的是,我没有突出显示。

代码:

    InlineCssTextArea textArea = new InlineCssTextArea();

    textArea.setParagraphGraphicFactory(LineNumberFactory.get(textArea));
    textArea.setMinHeight(200.0);

    textArea.getStylesheets().add(getClass().getResource("parser.css").toExternalForm());
    try {
        List<String> yourFileLines = Files.readAllLines(file.toPath());
        textArea.replaceText(yourFileLines.stream().collect(Collectors.joining("\n")));
    } catch (IOException e) {
        e.printStackTrace();
    }
    textArea.setStyle(0, 0, 10, "error");
    textArea.setEditable(false);

解析器。css:

.error {
    -rtfx-background-color: red;
}

共有1个答案

殷宇
2023-03-14

按留档InlineCssTextArea#setStyle直接获取参数中的css属性。

因此,在您的情况下,它将是textArea。设置样式(0、0、10,“-rtfx背景色:红色;”)

请注意,如果您想要许多具有相同样式的组件,那么样式类名称会更干净,并且是最好的方法(实际上在我看来,这几乎总是最好的方法)。通过阅读本文,如果您想使用类名,您应该选择StyleClassedTextArea,而不是InlineCssTextArea。实际上,StyleClassedTextArea接受StyleClass作为其方法的参数。(参见下面的示例)。

 类似资料:
  • 我正在使用RichTextFX的StyleClassedTextArea的一个实例,但在突出显示时似乎无法更改文本本身的颜色。 还有一个类似的问题:RichTextFx更改选定的文本颜色和行号背景,这对我很有帮助,但答案只更改实际的突出显示颜色,而不是突出显示时的文本本身。我希望突出显示的文本本身是白色的,以便更具可读性。 另一个问题的答案如下: 我尝试了其他方法来改变文本本身的颜色,例如: 但我

  • 我是RichTextFX新手,需要一些帮助。我想使用StyleClassedTextArea(见https://github.com/FXMisc/RichTextFX)。 我的简单java代码: 但是,如图所示,没有突出显示任何内容。有人知道我如何用红色(或我做错了什么)渲染一定范围内的文本吗?

  • 问题内容: 我可以高亮显示一些文本,使其从一个值开始,然后从另一个值结束,如下所示,但颜色为黄色吗? “” JTextPane 高亮显示 文本“” 谢谢。 问题答案: 通常,有几种可能性,具体取决于您对“突出显示”的真正含义:-) 通过在文档级别更改任意文本部分的样式属性来突出显示,例如 通过textPane级别上的荧光笔突出显示:

  • 问题内容: 我必须强调一个单词中所有出现的单词JEditorPane。为此,我使用以下代码: 但是,如何给出单词索引的位置呢? 我正在从文件中读取内容,但是它也在读取HTML标签,并且正在干扰单词索引。 问题答案: 基本上,您应该能够遍历文档以寻找所需的匹配项 … 这将遍历整个文档并突出显示所有匹配项。这也是区分大小写的匹配;)

  • 问题内容: 我很好奇是否有人知道一旦/当用户完成在网页上的文本选择后,我将如何触发一个函数运行?我希望用户能够选择文本,并且在短暂的延迟后(或立即,此时无所谓),文本附近会出现一个叠加按钮,用户可以单击该按钮,然后我返回并运行我的更多基于选择的代码。这是用于Firefox扩展。 我能想到的一个类似示例就像在IE中一样,您可以在其中选择文本,然后显示“ Web加速器”。我99%确信我知道如何实际覆盖

  • 问题内容: 我正在创建一个使用链接(JButton扩展名)的帮助系统,该链接可以展开和折叠带有JLabel的子面板。链接和可折叠面板都可以,但是我在实现查找对话框时遇到了麻烦。我希望能够突出显示用户搜索的部分文本。我认为我使用文本属性为链接中的文本加下划线使我无法突出显示文本的某些部分,但是我不确定如何做不同的事情。这是我的链接子类的链接类的代码: 如何在链接中实现突出显示的文本而又不去除下划线?