java - Java中的全屏透明颜色叠加

标签 java swing awt fullscreen graphic

是否可以在 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/

相关文章:

java - 如何使用JAVA JFrame移动对象?

java - FileInputStream 是如何找到文件的?

java - 在另一个项目的属性文件中引用另一个项目的目录

java - puppet "require"未按预期工作

Java GUI 和 SwingWorker 类的多个实例

java - 松开按键时游戏延迟

java - Swing Awesome字体

java - 当光标指向特定行时,如何获取 JTable 中的行和列?

java - 为什么不显示附加了按下的键字符的 String 对象?

java - 如何使 JTextfield 居中