Подсветка линии JTextArea - PullRequest
       19

Подсветка линии JTextArea

3 голосов
/ 14 февраля 2012

Я пытаюсь выделить несколько строк подкласса JTextArea (не выбран).Хотя я хочу выделить всю строку, а не только текст, содержащийся в каждой строке.Я получил это работает, но он только выделяет текст:

DefaultHighlighter h = (DefaultHighlighter)textArea.getHighlighter(
    try {
            int start = textArea.getLineStartOffset(blockedLine);
            int end = textArea.getLineEndOffset(blockedLine);
            DefaultHighlightPainter redHighlight = new DefaultHighlighter.DefaultHighlightPainter(Color.RED);
            h.addHighlight(start, end, redHighlight);
        } catch (BadLocationException ex) {
            Logger.getLogger(JavaFilter.class.getName()).log(Level.SEVERE, null, ex);
        }

Как я могу выделить всю строку вместо только текст?Я использую библиотеку с открытым исходным кодом для текстовой области, поэтому получение JTextPane или другого компонента невозможно (используется библиотека rysntaxtextarea).

Ответы [ 2 ]

4 голосов
/ 14 февраля 2012

Я бы предложил использовать JTextPane / JEditorPane , эти JTextComponents можно оформить и поддерживать стиль текста, к JTextPane / JEditorPane можно добавить любой JComponent, например. Icon ...), пример для HighlightPainter

0 голосов
/ 10 мая 2016

Идея из @ camickr LinePainter.java применима здесь: внедрить Highlighter.HighlightPainter, чтобы его paint(..) метод вышел за пределы заданного bounds,нарисовать прямоугольник одинаковой высоты и полной ширины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...