【问题标题】:SWT: Transparent shell makes widgets transparent tooSWT:透明外壳使小部件也透明
【发布时间】:2023-04-09 07:14:02
【问题描述】:

使用 SWT,我将外壳透明度设置为 setAlpha(x)。但是随后所有的小部件也变得透明了。即使添加“全白”图像作为合成背景也变得透明。 所以我实际上不能在这个窗口上做任何事情。

有人知道如何绕过这个吗?

【问题讨论】:

    标签: java swt transparency


    【解决方案1】:

    您是否正在搜索类似this:

    this:

    两者都是opal project 的一部分。

    【讨论】:

    • 是的,第一个。不幸的是,我不能使用任何“实验”库,它们必须同时在 Windows 和 Linux 上运行。
    • 第一个在 linux 上工作。如果您不允许使用此库,请查看源代码。复制起来应该不会太难。
    • 这个 Opal 项目看起来像是一个有用的实用程序集合。感谢您提供有用的链接。你知道其他类似的项目吗?我见过其他很酷的项目,但它们通常是非常需要特定的。但这是一个很好的有用和通用实用程序的集合,可用于各种应用程序。
    • @WaqasIlyas 我唯一知道的另一个是Nebula
    • Opal 和 Nebula 是最大且维护得最好的 swt 自定义小部件库。我又找到了一个:SWT-Appkit。它不是最新的,但有一些不错的东西,特别是如果你想要覆盖。
    【解决方案2】:

    我认为这是 Windows 操作系统上窗口外壳的标准行为。但是你可以通过在 Shell 上设置区域来实现你想要的......

    看看这个sn-p:http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/SWTShellcreateanonrectangularwindow.htm

    【讨论】:

    • 谢谢。在来这里之前,我实际上是在看那个。我想要实现的是在现有外壳顶部的半透明覆盖,中间是自定义消息/图像。你认为我可以用你链接的方法做到这一点吗?谢谢。
    • 那么您是否尝试过使用两个 shell,一个用于半透明背景,一个用于自定义消息/图标?
    • 嗯……很有趣。我试试看。
    • 嗯-它有点'工作...我的问题是我有一个会产生错误的外壳——>这会打开另一个外壳。现在你提出要打开另一个外壳,所以我尝试以一种聪明的方式使用 SWT.ON_TOP,所以我将在现有外壳的顶部放置透明外壳,并在顶部放置带有图像的外壳透明外壳。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 2011-07-02
    • 2020-09-12
    • 1970-01-01
    • 2021-04-30
    相关资源
    最近更新 更多