изменить определенный цвет текста в Java - PullRequest
1 голос
/ 22 февраля 2012

Мне интересно, как я могу изменить определенный цвет текста в предложении?

допустим, HELLO WORLD ... я хотел изменить МИР на красный цвет, не меняя цвет шрифта HELLO ... точно так же, как изменить МИР на жирный

Я хотел установить эти строки в jtextarea, но все, что я могу найти, это что-то вроде этого

JTextArea textbox = new JTextArea("hello world");
textbox.setForeground(Color.red)

это превращает целое предложение в красное вместо того, чтобы превращать МИР в красное?

1 Ответ

5 голосов
/ 22 февраля 2012

Посмотрите на это на из документации Oracle по текстовым компонентам. JTextArea будет принимать стили, но он всегда будет применять стили для всего содержимого. Однако, если бы вы использовали JTextPane, вы могли бы создать любой стиль для вашего текста, используя HTML.

Код для подтверждения утверждения:

import javax.swing.JFrame;
import javax.swing.JTextPane;
import javax.swing.text.html.HTMLEditorKit;

public class StyleTestApp {
    public static void main(final String[] args) {
        final JFrame f = new JFrame("test");
        //f.getContentPane().add(new JTextArea("<html>HELLO <font size=\"3\" face=\"verdana\" color=\"red\">WORLD</font></html>"));
        final JTextPane p = new JTextPane();
        // the HTMLEditorKit is not enabled by default in the JTextPane class.
        p.setEditorKit(new HTMLEditorKit());
        p.setText("<html>HELLO <font size=\"3\" face=\"verdana\" color=\"red\">WORLD</font></html>");
        f.getContentPane().add(p);
        f.pack();
        f.setVisible(true);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...