我们公司正在尝试将所有人从Window XP迁移到Windows 7,所以我正在测试一些本土的SWT应用程序,以确保它们仍可在Windows 7上运行。它们中的大多数仍在运行,但有一些奇怪的怪癖。我已经能够解决其中大部分问题了,但是我在这里找不到运气。
SWT表似乎总是在列之间有一条难看的黑线。我试过调用setLinesVisible(false),但无济于事。我知道这似乎不是一个重要的区别,但我们的用户可能非常挑剔。有没有人有过将应用程序迁移到Windows 7的类似经历,或者对我可以尝试的内容有任何建议?
之前(在XP中 - 竖起大拇指):
之后(在Windows 7中 - 向下竖起[注意黑线]):
有什么建议吗?
答案 0 :(得分:3)
尝试将以下侦听器添加到您的表中:
//Assuming your table is named 'table' and 'backgroundColor' is the
//color you're using to paint it's background.
table.addListener(SWT.EraseItem, new Listener() {
@Override
public void handleEvent(Event event) {
event.gc.setBackground(backgroundColor);
event.gc.fillRectangle(event.getBounds());
}
});
这应该可以解决垂直线的问题。以下是我在示例表中的外观:
没有听众(注意垂直线,在我的情况下它们不是黑色的,它们是灰色的......但它们仍然可见):
现在随着听众的补充: