我在 shell 上使用 SWT setAlpha() 方法。透明度在 KDE 和 GNOME 环境中正常工作,即在终端中输入:
java -jar program.jar
但是当我在没有窗口管理器的纯 X 上启动我的 java 应用程序时,shell 不透明并且具有白色背景。我使用命令 startx 和 X 执行我的 ~/.xinitrc 脚本,其中包含:
cd /home/user
java -jar ./program.jar
下面是方法的代码:
public void showTransparentShell() {
transparentShell = new Shell(shell, SWT.NO_TRIM);
transparentShell.setAlpha(120);
transparentShell.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
transparentShell.setBounds(shell.getBounds());
AlphaEffect.fadeOnClose(transparentShell, 900, new ExpoOut(), animationRunner);
transparentShell.open();
AlphaEffect.setAlpha(animationRunner, transparentShell, 160, 900, new ExpoOut(), null, null);
}
我正在使用 swt-3.7-2 和 gtk-3.2.0
Linux 中的透明度需要什么?必须安装哪些组件/库/包才能使“透明效果”起作用?
编辑:经过数小时的谷歌搜索,我遇到了解决方案,我只是在我的 java 程序之前启动了 Kwin:
kwin&
cd /home/user
java -jar ./program.jar
唯一的问题是 Kwin 相当大并且有很多依赖项。我必须在具有 256 MB RAM 的计算机上运行我的程序,所以也许有人知道支持透明度的更轻量级的窗口管理器,并且可以像 Kwin 一样使用 SWT?