是否可以制作一个透明背景的窗户?

时间:2011-12-16 02:16:39

标签: java user-interface swt

我想知道是否可以使用具有透明背景或没有背景的SWT创建窗口(即,只显示按钮和文本浮动)。

我尝试使用setBackground()功能,如:

shell.setBackground(display.getSystemColor(SWT.TRANSPARENT));

但它只会显示一个黑色背景窗口,而不是透明窗口。任何方式这样做?

1 个答案:

答案 0 :(得分:5)

请参阅How to Create Translucent and Shaped Windows(Java 7 +)。

Translucent window with button

  

..(SWT)使用本机窗口方案,而不是丑陋/自定义窗口方案。 ..

对原生PLAF使用Swing。


更新1

我。

  
    

..你想要组件(按钮等),而不是Window(或祖先)的透明度?

  

你回复了。

  

不一定是组件本身,而是组件所在的“区域”。如果查看上面的嵌套布局示例,您会看到win 7的透明边框,然后您会看到正常的灰色背景。我希望那个灰色的背景也是透明的。

Window with 'per pixel' translucency

  

您可以使用每像素半透明创建一个窗口,其中每个像素都有自己的Alpha值。例如,通过此功能,您可以通过在Alpha值中定义渐变来创建一个渐渐消失的窗口。

顺便说一句,第3张截图实际上是第二张图片直接从我回复的第一句中链接的页面(我获得上述引用的同一页面)链接。您是否按照链接阅读了页面(查看截图),尝试工作示例?