是否可以在Java中创建透明色彩叠加层?它还应该涵盖任务栏和工具栏。以下代码不起作用。它只是全屏创建一个黑色窗口。
public class Overlay extends Window {
private static final long serialVersionUID = 1 L;
public Overlay(Window owner) {
super(owner);
}
public void show() {
try {
setVisible(true);
setBackground(new Color(0, 0, 0, 0.5 f));
GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().setFullScreenWindow(this);
} catch (Exception error) {
// Error
}
}
}
谢谢!
答案 0 :(得分:1)
此代码适用于我但有时会抛出异常(每10次运行9次成功)。我在其他计算机上测试过,它总是失败。无论如何,我发布它,因为它可能会有所帮助,你可以弄清楚要做什么让它100%工作。
import javax.swing.*;
import java.awt.*;
public class Overlay extends Window {
private static final long serialVersionUID = 1L;
public Overlay(Window owner) {
super(owner);
}
public void showIt() {
try {
GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().setFullScreenWindow(this);
setVisible(true);
SwingUtilities.invokeLater(() -> {
setBackground(new Color(255,255,255,124));
});
} catch (Exception error) {
System.out.println(error);
}
}
public static void main(String[] args) {
new Overlay(null).showIt();
}
}
结果是全屏窗口,不透明度约为50%。
编辑:窗口行为取决于平台。我测试了Linux Mint 18.3 Cinnamont 64位。