Установка цвета текста с помощью JColorChooser - PullRequest
1 голос
/ 20 ноября 2010

Я пытаюсь создать текстовый редактор с JTextPane, но у меня проблемы с настройкой цвета выделенных текстов.Вот лучшее, что можно придумать (но, очевидно, не работает):

    JMenuItem button = new JMenuItem("Set Color");
    toolbar.add(button);

    button.addActionListener(new ActionListener( ) {
        public void actionPerformed(ActionEvent e) {
            Color c = JColorChooser.showDialog(frame,"Choose a color", getBackground());
            textPane.getSelectedText().StyledEditorKit.ForegroundAction("color",c);
        }
    });

Есть предложения, как заставить это работать?Или лучший способ сделать это?

Спасибо

1 Ответ

2 голосов
/ 20 ноября 2010

getSelectedText() просто возвращает нормальную строку, содержащую выделенный текст; Вы не можете использовать его для изменения атрибутов текста.

Я бы начал с использования SimpleAttributeSet и StyleConstants для создания атрибута цвета, а затем применил бы его к выбранной части вашего текста:

SimpleAttributeSet attr = new SimpleAttributeSet();
StyleConstants.setForeground(attr, c);
textPane.setCharacterAttributes(attr, false);
...