2

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

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

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

在此处输入图像描述

之后(在 Windows 7 中 - 大拇指向下 [注意黑线]):

在此处输入图像描述

有什么建议么?

4

1 回答 1

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


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

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

在此处输入图像描述

现在添加了监听器:

在此处输入图像描述

于 2011-05-18T17:48:04.683 回答