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

jir*_*ovo 0 java fonts swt styledtext monospace

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

在此先感谢您的帮助!

Baz*_*Baz 5

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

SWT - OS获取等宽字体的不可知方式

然后简单地致电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();
}
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

在此输入图像描述