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

标签 java swing jframe transparency opacity

我使用的是 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/

相关文章:

Java,有没有更好的方法来进行按键检测?

java - 将 block 传递给 Java 中的方法

javascript - 如何下载网页的准确源代码

Java ParallelStream 未显示正确的结果

java - 以图形方式自定义 Nimbus 外观和感觉的工具

java - 从 JPanel 获取选定的组件

java - 显示 JComboBox 中的第一个元素

java - JFrame Java 上的移动按钮

java - 将压缩字节 [] 写入文件

java - 尝试绘制多个多边形会导致错误