gpt4 book ai didi

java - SWT:包含跨列单元格的表格

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:58:04 25 4
gpt4 key购买 nike

在具有基于 SWT 的 GUI 的 Java 桌面应用程序中,我们有一个表格,其中一些行必须跨越多个列。这已通过此官方 SWT 代码段中显示的方法解决:Snippet239.java

但是,很久以后,人们发现这种方法在具有默认 Ambiance/Radiance 主题的 Ubuntu 上存在一个主要问题:列之间总是有垂直线,即使对于跨越多列的单元格也是如此。这显示在以下屏幕截图中:

Ubuntu with Ambiance/Radiance theme

Ubuntu with Clearlooks theme

如您所见,在第一个屏幕截图中,第 1 列和第 2 列之间有一条垂直线。有人知道如何去掉这些线吗?

我们已经尝试过以下方法:

  • Table.setLinesVisible(false):不起作用,垂直线不会消失。
  • 使用基于所有者绘制的标签提供者绘制这些垂直线:不起作用,垂直线似乎绘制在标签提供者绘制的所有内容之上。
  • 将绘画监听器附加到表格以在垂直线上绘制:不起作用,因为每当表格滚动或以其他方式更新时都会出现很多故障。
  • Nebula project有一个 Grid 小部件,其中单元格可以跨越多列,并且垂直线没有问题,因为整个表格是非本地绘制的。然而,我们不能证明用 Grid 小部件替换我们的表格只是为了解决具有特定主题的特定平台上的垂直线问题。此外,Grid 小部件似乎是预发布的 alpha 版本。

基于我们已经尝试过的事情,我认为剩下的唯一方法就是在 SWT 的特定于平台的内部进行处理,但我什至不知道从哪里开始做类似的事情。

最佳答案

我们通过使用具有模拟多个列的单个所有者绘制列的Table 解决了这个问题。

关于java - SWT:包含跨列单元格的表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11412914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com