日期:2014-05-20  浏览次数:20847 次

一个GUI的很小的问题
小弟被一个问题困绕了,就是Frame类里面从父类继承了add方法用于向里面添加元素,我这里使用的是public Component add(Component comp).然后原代码我里面写到,Frame f = new Frame(); Frame f1 =new Frame(); f.add(f1);
然后调试程序就出错了,明明add方法里面可以添家各种图形元素,为什么Frame里面就不能在套Frame?

请赐教,谢谢!!!

------解决方案--------------------
自己跟踪代码看看
这是Container中的 
 public Component add(Component comp) {
addImpl(comp, null, -1);
return comp;
}

再看 addImpl的实现
其中
 if (comp instanceof Window) {
throw new IllegalArgumentException(
"adding a window to a container");
}
也就是add()的参数不能是Window类型,而Frame是Window的子类,执行到这就抛异常了。