如何在JavaSwing中创建半透明窗口?

如何在JavaSwing中创建半透明窗口?,java,swing,Java,Swing,我使用java,我想制作一个半透明的窗口(像一个80%alpha的黑色窗口)。我的代码的基础是以下帖子中的代码: 问题是,当我运行我的程序时,窗口是半透明的,但正如您在下图中看到的,背景色(洋红色)仅显示在文本上,而不是白色。 更糟糕的是,当我选择透明度为颜色(0,0,0125)的黑色作为绘图颜色时,屏幕上没有显示任何内容 以下是我到目前为止的情况: public class DssWindow extends JFrame { /** * */ priva

我使用java,我想制作一个半透明的窗口(像一个80%alpha的黑色窗口)。我的代码的基础是以下帖子中的代码:

问题是,当我运行我的程序时,窗口是半透明的,但正如您在下图中看到的,背景色(洋红色)仅显示在文本上,而不是白色。 更糟糕的是,当我选择透明度为
颜色(0,0,0125)
的黑色作为绘图颜色时,屏幕上没有显示任何内容

以下是我到目前为止的情况:

public class DssWindow extends JFrame
{
    /**
     * 
     */
    private static final long serialVersionUID = 2455172975892566000L;

    /**
     * 
     */
    public DssWindow()
    {
        super("My frame");

        setUndecorated(true);   
        setBackground(new Color(0,0,0,0));
        setAlwaysOnTop(true);
        JPanel contentPane = new JPanel()
        {
            @Override
            public void paintComponent(Graphics g)
            {
                super.paintComponent(g);
                if(!(g instanceof Graphics2D))
                {
                    return;
                }
                Graphics2D gr = (Graphics2D)g.create();
                gr.setColor(new Color(255,0,255,200));
                gr.fillRect(0, 0, getWidth(), getHeight());
            }
        };
        contentPane.setOpaque(false);
        Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
        contentPane.setPreferredSize(new Dimension(screen.width,screen.height));
        setContentPane(contentPane);
        pack();
    }
}
有人知道/知道问题出在哪里吗? 我在Linux上工作(也许这是答案的一部分)


谢谢。

好的,我的问题如下:
图形驱动程序似乎是这种行为的原因。

可能的重复不是重复。我用这篇文章来制作我的程序。这是我的另一个问题。