Java SWT - StyledText如何使用等宽字体显示文本

时间:2014-08-22 16:50:41

标签: java fonts swt styledtext monospace

有没有办法强制StyledText小部件使用等宽字体显示文本?这不是使用字体的问题 - 我尝试过'Monospace','Courier','System','Fixedsys'和其他等宽字体...... 普通文本小部件默认显示带有等宽字体的文本('Fixedsys'字体测试)。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:5)

您可以使用此问题的答案中显示的方法获得等宽字体:

SWT - OS agnostic way to get monospaced font

然后只需致电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();
}

看起来像这样:

enter image description here