Windows 7 SWT Table.setLinesVisible(false)在Windows 7上似乎不起作用

Windows 7 SWT Table.setLinesVisible(false)在Windows 7上似乎不起作用,windows-7,swt,tabular,Windows 7,Swt,Tabular,我们公司正试图将所有人从WindowsXP迁移到Windows7,所以我正在测试一些自主开发的SWT应用程序,以确保它们仍然可以在Windows7上工作。他们中的大多数人仍然这样做,但有一些奇怪的怪癖。我能算出其中的大部分,但这里的那个我运气不好 SWT表的列之间似乎总是有一条难看的黑线。我尝试调用setLinesVisible(false),但没有效果。我知道这似乎不是一个重要的区别,但我们的用户可能会相当挑剔。有没有人有过将应用程序迁移到windows 7的类似经历,或者对我可以尝试什么有什

我们公司正试图将所有人从WindowsXP迁移到Windows7,所以我正在测试一些自主开发的SWT应用程序,以确保它们仍然可以在Windows7上工作。他们中的大多数人仍然这样做,但有一些奇怪的怪癖。我能算出其中的大部分,但这里的那个我运气不好

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

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

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


有什么建议吗?

尝试将以下侦听器添加到您的表中:

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

这将解决垂直线的问题。下面是它在我的示例表中的外观:

没有侦听器(注意垂直线,在我的例子中它们不是黑色的,它们是灰色的,但它们仍然可见):

现在添加了侦听器:


谢谢。这很有帮助,但不是我想要的那种。不过这是一个很好的退路。如果我没有更多的答案,我会认为你的答案已经被接受。