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

发布于 2024-11-07 14:18:13 字数 514 浏览 5 评论 0原文

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

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

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

在此处输入图像描述

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

在此处输入图像描述

有什么建议吗?

Our company is trying to move everyone from Window XP to Windows 7, so I'm testing some of the home-grown SWT applications to make sure that they still work on Windows 7. Most of them still do, but there's some weird quirks. I've been able to work out most of them, but the one here I'm having no luck with.

SWT Tables always seem to have an ugly black line between columns. I've tried calling setLinesVisible(false), but to no avail. I know this doesn't seem like an important difference, but our users can be quite picky. Has anyone had similar experiences of migrating apps to windows 7 or have any suggestions on what I can try?

Before (in XP - thumbs up):

enter image description here

After (in Windows 7 - thumbs down [Notice the black lines]):

enter image description here

Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱格式化 2024-11-14 14:18:13

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

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

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

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

在此处输入图像描述

现在添加了侦听器:

Try adding the following listener to your table:

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

This should solve your problems with vertical lines. Here's how it looks on my example table:

Without the listener (notice the vertical lines, they are not black in my case, they're gray..but they're still visible):

enter image description here

And now with the listener added:

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文