是否可以在 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
}
}
}
谢谢!
最佳答案
这段代码对我有用,但有时会抛出异常(每 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 位上进行了测试。
关于java - Java中的全屏透明颜色叠加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49301367/