gpt4 book ai didi

java - 为什么 JFrame 仍然不透明?

转载 作者:行者123 更新时间:2023-12-02 13:40:50 27 4
gpt4 key购买 nike

我使用的是 Java 6。

我希望下面的代码可以显示一个透明的窗口。但它仍然显示一个白色背景的正常窗口。为什么?我认为如果我隐藏所有 Pane ,它应该给我一个透明的窗口,这是合乎逻辑的。

package MaskingEffect;

import java.awt.EventQueue;

import javax.swing.JFrame;

public class GlassMaskTest {

public static void main(String[] args) {
// TODO Auto-generated method stub

EventQueue.invokeLater(new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
GlassMaskFrame frame=new GlassMaskFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setVisible(false);
frame.getLayeredPane().setVisible(false);
frame.getRootPane().setVisible(false);
frame.getGlassPane().setVisible(false);
frame.setVisible(true);
//AWTUtilities.setWindowOpacity(frame, 0.1f);

}
});

}

}

这是GlassMaskFrame:

package MaskingEffect;

import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics2D;

import javax.swing.JComponent;
import javax.swing.JFrame;

import com.sun.awt.AWTUtilities;
import com.sun.xml.internal.ws.api.server.Container;

public class GlassMaskFrame extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;

public GlassMaskFrame() {

this.setSize(new Dimension(500, 600));
}

}

我还尝试为 4 个 Pane 中的每一个setBackground(new Color(0,0,0,0))。但仍然没有得到透明的窗口。

我不想使用 AWTUtilities.setWindowOpacity() 方法。

这就是我得到的:

enter image description here

最佳答案

将框架的背景颜色设置为

<frame-name>.setBackground(new Color(0, 0, 0, 0));

并设置内容 Pane 或您正在使用的任何内容的不透明度...

<content-pane-name>.setOpaque(false);

这可能会起作用......

关于java - 为什么 JFrame 仍然不透明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29743715/

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