Я создаю текстовый редактор с помощью JTextPane, который позволяет пользователю изменять цвет выделенного текста. Но когда пользователь выбирает текст, а затем выбирает вариант изменения цвета (например, на красный), текст не отображается красным, пока текст не будет отменен. Я попытался использовать setSelectedTextColor, чтобы изменить цвет выделенного текста, но это не сработало, поскольку это меняет текст на красный каждый раз, когда текст выбирается впоследствии. Есть ли способ, чтобы выделенный текст отображался в реальном цвете? Или как это работает в Word, где это не фактический цвет текста, но когда выбран текст разных цветов, они отображаются разными цветами, даже когда они выбраны.
Я использую следующий код для настройки JTextPane и кнопки, которая изменяет выделенный текст на красный:
JButton redButton = new JButton(new StyledEditorKit.ForegroundAction("red", Color.RED));
redButton.setFocusable(false);
buttonPanel.add(redButton);
JTextPane настроен так же, как и с типом содержимого HTML, и использует HTMLEditorKit:
p=new JTextPane();
p.setSize(300, 300);
kit = new HTMLEditorKit();
p.setEditorKit(kit);
p.setDocument(kit.createDefaultDocument());
p.setContentType("text/html");
p.setEditable(true);
Дайте мне знать, если вам понадобится больше исходного кода, чтобы разобраться в вопросе. Спасибо!