任何人都可以告诉我为什么会出现以下异常
Exception in thread "main" java.lang.IllegalArgumentException adding a window to a container :
java.awt.Container.checkNotAWindow(Unknown Source)
java.awt.Container.addImpl(Unknown Source)
java.awt.Container.add(Unknown Source)
javax.swing.JFrame.addImpl(Unknown Source)
java.awt.Container.add(Unknown Source)
clockframe.<init>(clockframe.java:14)
clockframe.main(clockframe.java:32)
我在clockpanel.java文件中的代码如下:我是初学者,所以我不知道如何解决这个问题......
import java.awt.*;
import javax.swing.*;
public class clockframe extends JFrame
{
public clockframe()
{
super("Clock");
setLookAndFeel();
setSize(225, 125);
FlowLayout flo = new FlowLayout();
setLayout(flo);
clockpanel time = new clockpanel();
add(time);
setVisible(true);
}
private void setLookAndFeel()
{
try
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
}
catch (Exception exc)
{
// ignore error
}
}
public static void main(String args[])
{
clockframe clock = new clockframe();
}
}
答案 0 :(得分:2)
clockpanel
可能扩展了JFrame
等窗口。您可能希望扩展JPanel
(尽管除非向新JPanel
添加自定义绘制等新功能,否则不需要这样做。)
答案 1 :(得分:2)
IllegalArgumentException - if index is invalid
IllegalArgumentException - if adding the container's parent to itself
IllegalArgumentException - if adding a window to a container
clockpanel
可能会继承Window
,从而触发最后一个条款。
编辑:无需再猜测..只是注意到了堆栈跟踪的顶部..这就是原因。
答案 2 :(得分:0)
答案就是堆栈跟踪中的自我:
thread "main" java.lang.IllegalArgumentException adding a window to a container
您要将window
添加到container
,这是不允许的。