gpt4 book ai didi

java - 透明框架在 Windows 中可以正常工作,但在 Linux 中不能

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:56:16 24 4
gpt4 key购买 nike

以下代码在 Windows (8.1) 中生成透明窗口,但在 Ubuntu (14.04) 中生成不透明窗口。 Ubuntu 14.04如何实现红框透明窗口?

我的目标是创建一个带有“圆角(透明)边缘”的未修饰窗口,因此 setOpacity() 方法无济于事,因为它会影响整个窗口,即使它在两个操作系统上都有效。

public static void main(String[] args) {
JFrame f = new JFrame();
f.setUndecorated(true);
f.setBackground(new Color(0,255,0,0));
f.setSize(512, 512);
f.add(new JPanel() {
@Override
protected void paintComponent(Graphics g) {
g.setColor(Color.RED);
g.drawRect(0, 0, 511, 511);
}
});
f.setVisible(true);
}

最佳答案

我找到了问题的根源。它与在 Ubuntu 中设置多显示器有关。无论如何,这是解决方案——这将使它在最喜欢的显示器上工作:

在 setVisible() 调用之前添加以下代码:

    f.setLocationRelativeTo(null);

我认为它失败的原因是帧可能首先在辅助显示器上渲染(由于每个显示器的分辨率不同?),这可能导致此绘图错误。

感谢大家的参与。非常感谢! :)

关于java - 透明框架在 Windows 中可以正常工作,但在 Linux 中不能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25767503/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com