首页 > 解决方案 > 遇到错误 IllegalArgumentException:向容器添加窗口

问题描述

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;

public class SimpleGui implements ActionListener{

    JFrame frame;
    //main clss

    public static void main(String[] args){

        SimpleGui gui=new SimpleGui();
        gui.go();

    }

添加框架和功能的方法

    public void go(){

        frame=new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JButton button=new JButton("Change Color");
        button.addActionListener(this);

        MyDrawPanel drawPanel=new MyDrawPanel();

        frame.getContentPane().add(BorderLayout.SOUTH,button);
        frame.getContentPane().add(BorderLayout.CENTER,drawPanel);
        frame.setSize(300,300);
        frame.setVisible(true);

    }

它将color召回ghraphic

    public void actionPerformed(ActionEvent e) {

        frame.repaint();

    }

}

发生异常

 Exception in thread "main" java.lang.IllegalArgumentException: adding a window to a container
        at java.awt.Container.checkNotAWindow(Container.java:490)
        at java.awt.Container.addImpl(Container.java:1091)
        at java.awt.Container.add(Container.java:438)
        at SimpleGui.go(SimpleGui.java:27)
        at SimpleGui.main(SimpleGui.java:14)
    Java Result: 1
    BUILD SUCCESSFUL (total time: 1 second)

标签: java

解决方案


推荐阅读