【问题标题】:How to maintain the Table-like structure of a SWT Label or SWT Text?如何维护 SWT Label 或 SWT Text 的 Table-like 结构?
【发布时间】:2018-03-07 13:58:23
【问题描述】:

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

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

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

但是,如果我将其读入 String 并使用此 String 设置 SWT Label 或 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 会很困难,因为我不知道需要多少列。

【问题讨论】:

  • 列不对齐,因为您使用的是可变宽度字体,将控件设置为使用固定宽度字体可以解决此问题。但是表格会好很多 - 你不能在阅读文件时计算出列数吗?
  • 我不知道,也许吧。但这也会增加额外的困难。如何设置字体?
  • 我的意思是如何将控件设置为使用固定宽度?
  • 您在指定固定宽度字体的控件上调用setFont 方法。 JFaceResources.getFont(JFaceResources.TEXT_FONT)返回的字体通常是固定宽度的。
  • historyLabel.setFont(JFaceResources.getFont(JFaceResources.TEXT_FONT));可悲的是,这没有任何改变

标签: widget swt eclipse-rcp jface java-io


【解决方案1】:

我需要这样设置字体:

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

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

【讨论】:

    猜你喜欢
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 2021-07-29
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    相关资源
    最近更新 更多