Java SWT - StyledText, как отображать текст с использованием моноширинного шрифта

Есть ли способ заставить виджет StyledText отображать текст с использованием моноширинного шрифта? Это не проблема используемого шрифта - я пробовал «Monospace», «Courier», «System», «Fixedsys» и другие моноширинные шрифты ... Виджет «Обычный текст» по умолчанию отображает текст с моноширинным шрифтом (шрифт «Fixedsys» протестирован).

Заранее спасибо за помощь!


person jirinovo    schedule 22.08.2014    source источник


Ответы (1)


Вы можете получить моноширинный шрифт с помощью методов, показанных в ответах на этот вопрос:

SWT - независимый от ОС способ получения моноширинного шрифта

Затем просто вызовите StyledText#setFont(Font):

public static void main(String[] args)
{
    Display display = new Display();
    Shell shell = new Shell();
    shell.setText("StackOverflow");
    shell.setLayout(new FillLayout());

    StyledText text = new StyledText(shell, SWT.BORDER | SWT.MULTI);
    text.setFont(JFaceResources.getFont(JFaceResources.TEXT_FONT));
    text.setText("|i|m|\n|m|i|");

    shell.pack();
    shell.setSize(200, 100);
    shell.open();

    while (!shell.isDisposed())
    {
        if (!display.readAndDispatch())
        {
            display.sleep();
        }
    }
    display.dispose();
}

Выглядит так:

введите здесь описание изображения

person Baz    schedule 22.08.2014