SWT Table.setLinesVisible(false)似乎不适用于Windows 7

时间:2011-05-16 05:35:23

标签: windows-7 swt tabular

我们公司正在尝试将所有人从Window XP迁移到Windows 7,所以我正在测试一些本土的SWT应用程序,以确保它们仍可在Windows 7上运行。它们中的大多数仍在运行,但有一些奇怪的怪癖。我已经能够解决其中大部分问题了,但是我在这里找不到运气。

SWT表似乎总是在列之间有一条难看的黑线。我试过调用setLinesVisible(false),但无济于事。我知道这似乎不是一个重要的区别,但我们的用户可能非常挑剔。有没有人有过将应用程序迁移到Windows 7的类似经历,或者对我可以尝试的内容有任何建议?

之前(在XP中 - 竖起大拇指):

enter image description here

之后(在Windows 7中 - 向下竖起[注意黑线]):

enter image description here

有什么建议吗?

1 个答案:

答案 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());
        }
      });


这应该可以解决垂直线的问题。以下是我在示例表中的外观:

没有听众(注意垂直线,在我的情况下它们不是黑色的,它们是灰色的......但它们仍然可见):

enter image description here

现在随着听众的补充:

enter image description here