我当前正在尝试在 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; 
} 

请您参考如下方法:

根据documentation InlineCssTextArea#setStyle 直接采用参数中的 css 属性。

因此,在您的情况下,它将是 textArea.setStyle(0, 0, 10, "-rtfx-background-color: red;");

<小时 />

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


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!