Java StyledText, добавление текста другим шрифтом? - PullRequest
1 голос
/ 01 февраля 2012

Я новичок в Java и хотел бы знать , как установить шрифт и цвет шрифта, который будет использоваться для следующего текста, добавляемого в поле SWT StyledText .

Так, например, у меня есть приложение, которое определяет текст «команда» и «данные», и каждое из них должно отображаться разными шрифтами / цветами. Допустим, я только что добавил текст «команды». Теперь, как мне сделать так, чтобы следующий текст, который будет текстом «данных», отображался другим шрифтом и цветом?

Я много гуглил, но, похоже, мне ничего не помогло.

P.S .: Это не самый эффективный способ сделать это:

int a = st.getCharCount();

Font font = new Font(shlProtruleModifier.getDisplay(), "Courier", 10, SWT.NORMAL);

StyleRange[] sr = new StyleRange[1];

sr[0] = new StyleRange();

st.append("\r\nWhat the heck?");

sr[0].start = a;
sr[0].length = st.getCharCount() - a;
sr[0].font = font;
sr[0].foreground = SWTResourceManager.getColor(SWT.COLOR_BLACK);

st.replaceStyleRanges(sr[0].start, sr[0].length, sr);

1 Ответ

1 голос
/ 25 апреля 2012

Так что все, что я смог придумать, это следующая техника, которая работает,

int a = st.getCharCount();

Font font = new Font(shlProtruleModifier.getDisplay(), "Courier", 10, SWT.NORMAL);

StyleRange[] sr = new StyleRange[1];

sr[0] = new StyleRange();

st.append("\r\nWhat the heck?");

sr[0].start = a;
sr[0].length = st.getCharCount() - a;
sr[0].font = font;
sr[0].foreground = SWTResourceManager.getColor(SWT.COLOR_BLACK);

st.replaceStyleRanges(sr[0].start, sr[0].length, sr);
...