【发布时间】:2015-01-11 00:42:25
【问题描述】:
以下代码创建了一个包含两列和两行的 SWT 表。在我的系统上,生成的 shell/table 如下所示:
我不禁想知道每个单元格文本前面的额外缩进/间距/填充来自哪里。我已经在网上搜索并尝试了所有可能的方法来删除它,但我找不到方法。 如何去除多余的间距(上图中标记为红色)?
系统信息:
- Linux Mint 17
- SWT 4.4 x86_64
链接:
这个例子最初取自java2s.com,稍作修改。原始网站上的屏幕截图没有显示此间距/缩进。
重现此问题的代码:
public class SwtTableItemIssue {
public static void main(String[] a) {
Shell shell = new Shell(Display.getDefault());
shell.setSize(200, 180);
shell.setLayout(new FillLayout());
Table t = new Table(shell, SWT.BORDER);
t.setHeaderVisible(true);
TableColumn tc1 = new TableColumn(t, SWT.NONE);
TableColumn tc2 = new TableColumn(t, SWT.NONE);
tc1.setText("First Name");
tc2.setText("Last Name");
tc1.setWidth(70);
tc2.setWidth(70);
new TableItem(t, SWT.NONE).setText(new String[] { "Tim", "Hatton" });
new TableItem(t, SWT.NONE).setText(new String[] { "Caitlyn", "Warner" });
shell.open();
shell.layout();
Display display = Display.getDefault();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}
【问题讨论】:
-
在 Mac OS X 上显示正常。看起来为列图像留出了空间,可能是 Linux 特定的问题。
-
在具有旧版本 SWT 的 Linux Mint 上运行良好。也不适用于 SWT 4.4。
-
TableItem的源代码包含这样的注释:“在 GTK 的更高版本上移动有点太远了 - 然而,老树也有这个问题”。不确定它是否与您的问题有关。如果是这样,他们似乎意识到了这个问题。