Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 半透明窗口的错误让我头疼_Java_Swing_Awt_Transparency - Fatal编程技术网

Java 半透明窗口的错误让我头疼

Java 半透明窗口的错误让我头疼,java,swing,awt,transparency,Java,Swing,Awt,Transparency,我和我的朋友整个下午都在排除这个程序的故障。我可以在我的mac上编译这篇文章。然而,他不能在他的Windows7机器上编译它。我们都在运行Netbeans。有人能指出是什么原因导致他犯这个错误吗。它不喜欢挫折的宣言 显示的错误如下 Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: The frame is decorated at java.awt.Frame.setBackgr

我和我的朋友整个下午都在排除这个程序的故障。我可以在我的mac上编译这篇文章。然而,他不能在他的Windows7机器上编译它。我们都在运行Netbeans。有人能指出是什么原因导致他犯这个错误吗。它不喜欢挫折的宣言

显示的错误如下

Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: The frame is decorated
    at java.awt.Frame.setBackground(Frame.java:986)
    at FadeOut.<init>(FadeOut.java:24)
    at FadeOut$2.run(FadeOut.java:70)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
    at java.awt.EventQueue.access$200(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:694)
    at java.awt.EventQueue$3.run(EventQueue.java:692)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

别忘了,当你遇到一个你无法诊断的奇怪异常时,总是在互联网上寻找,很可能其他人也有同样的问题

我搜索了“java.awt.IllegalComponentStateException:框架被装饰”并找到了

由于它在一个地方工作,而不是在另一个地方工作,我假设它与一些后台配置有关,可以先看看这个,比较一下系统变量和JDK等,你们都有解决问题的方法:Frame的包装类
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Paint;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.border.Border;
import javax.swing.border.TitledBorder;

public class FadeOut extends javax.swing.JFrame
{
    public javax.swing.JPanel panel1;

 public FadeOut() 
{

        super("FadeOut");
        setBackground(new Color(0,0,0,0));//////////////Compiler doesn't like me
        setSize(new Dimension(800,800));
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel = new JPanel()
        {
            @Override
            protected void paintComponent(Graphics g)
            {
                if (g instanceof Graphics2D)
                {
                    final int R = 100;
                    final int G = 100;
                    final int B = 100;
                    Paint p = new GradientPaint(0.f,0.f,new Color(R, G, B, 0),0.f, getHeight(), new Color(R, G, B, 0), true);
                    Graphics2D g2d = (Graphics2D)g;
                    g2d.setPaint(p);
                    g2d.fillRect(0,0,getWidth(),getHeight());
                }//END GRAPHICS2D
            }//END PAINTCOMPONENT
        };//END FRAME & PANEL TRANSLUCENT DEFINITION
        setContentPane(panel);
        init();
    }//END FadeOut CONSTRUCTOR

 public void init()
 {
     setLayout(new GridLayout(1,1));
     Border blueLine;
     blueLine = BorderFactory.createLineBorder(Color.decode("0xFF00FF"));

     panel1 = new JPanel(new GridLayout(1,1));
     panel1.setBorder(BorderFactory.createTitledBorder(blueLine,"I'm translucent bitches!!", TitledBorder.CENTER,2,null,Color.decode("0x007FF")));
     add(panel1);
 }




  public static void main(String args[])
    {
         SwingUtilities.invokeLater(new Runnable()
        {
            @Override
            public void run()
            {
                FadeOut gtw = new
                    FadeOut();
                // Display the window.
                gtw.setVisible(true);
            }//END RUN
        });//SWINGUTILITIES.INVOKELATER  
    }//END MAIN

}//END FadeOut