如何维护 SWT 标签或 SWT 文本的 Table 类结构?

How to maintain the Table-like structure of a SWT Label or SWT Text?

我必须使用 Eclipse SWT 的一些小部件来显示文件的内容。该文件具有结构,它的行数未知,列数未知。该文件的格式正确(即第一行中的第二列恰好从第二行、第三行等...行的第二列开始。)它具有类似 table 的结构,但没有实际的 table:

itt.van.juci tt.mm.yyyy // hh:mm:ss juci 14.09.2017 // 08;08:08

如果读取文件并将其再次打印到另一个文件,我会得到相同的结构,没有任何失真。

但是,如果我将它读入字符串并使用此字符串设置 SWT 标签或 SWT.Text,我的外观就会变形。第二列(以及任何后续列)中的行不从同一位置开始。第一栏内容的长度影响后面几栏的起点:

itt.van.juci                                   tt.mm.yyyy // hh:mm:ss 
juci                                     14.09.2017 // 08;08:08

有没有办法去除这些多余的空格并保持原来的结构?

这是我使用的设置标签部分:

    Label historyLabel = new Label(compositeFiles, SWT.WRAP);
    GridData gd_lblNewLabel = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
    gd_lblNewLabel.widthHint = 566;
    gd_lblNewLabel.heightHint = 237;
    historyLabel.setLayoutData(gd_lblNewLabel);
    historyLabel.setText(Dummy.dummyHistory());
}

这里正在读取文件:

private static String java_8() {
    StringBuilder sb = new StringBuilder();
    try (Stream<String> stream = Files.lines(Paths.get(fileName_2))) {
        stream.forEach(line->{
            sb.append(line).append("\n");
        });
    } catch (IOException e) {
        e.printStackTrace();
    }
    return sb.toString();
}

非常感谢任何解决方案。如果其他小部件更适合,我不需要使用 org.eclipse.swt.widgets.Text。但是,使用 Table 会很困难,因为我不知道我需要多少列。

我需要这样设置字体:

Font mono = new Font(compositeFiles.getDisplay(), "Courier New", 12, SWT.NONE);
    historyLabel.setFont(mono);

我的answare是基于greg-449给出的提示。