Сразу выделите один текстовый диапазон в RichTextFX - PullRequest
0 голосов
/ 26 ноября 2018

В настоящее время я пытаюсь отобразить содержимое файла в 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);

parser.css:

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

1 Ответ

0 голосов
/ 27 ноября 2018

Согласно документации InlineCssTextArea#setStyle непосредственно принимает свойство css в параметре.

Таким образом, в вашем случае это будет textArea.setStyle(0, 0, 10, "-rtfx-background-color: red;");.


Примечание , что если вам нужно много компонентов с одинаковыми стилями, имя стиля стилей будет чищеи лучший подход (на самом деле, на мой взгляд, это почти всегда лучший подход).И, читая это , если вы хотите использовать имя класса, вы должны выбрать StyleClassedTextArea вместо InlineCssTextArea.Действительно StyleClassedTextArea принимает StyleClass в качестве параметра его метода setStyle.(см. пример ниже ).

...