黑马程序员技术交流社区

标题: 有关图形化界面awt的理解 [打印本页]

作者: dolphin    时间: 2013-10-12 14:48
标题: 有关图形化界面awt的理解
awt构建图形化界面的时候,有讲到构件Compent,它分Container容器和其他的,说容器是一特殊组件,可添加其他组件,那继承它的面板,窗口,对话框等也都算容器?也都可以随意添加其他组件,包括同级容器?


作者: 吴清源    时间: 2013-10-12 16:20
继承于Container类的子类都可以称之为容器,Container类与其他组件都是Compent的子类,所以说Container容器类是一种特殊的组件,因为其拥有父类Compent相关的属性及方法。
只要继承于Container类的子类都可称之为容器,容器分为两部分,即独立容器和不独立容器,像窗口,对话框等是属于独立容器,其可以不依赖其他容器而独立构造出实例。而面版这类的容器则需要添加到其他容器上才能使用。有些容器是可以进行嵌套的,但不是全部。容器必须有一个最外层的对象,可以用于创建实例,称之为顶层容器,分别是JFame,JWindow,JApplet,JDialog。
容器都可以用来添加组件,但也不是随意,有些组件必须添加到特定容器才会起作用,不独立容器可添加同级别的容器,如Jpanel可再添加一个Jpanel进去,而独立容器则不允许。
这是我个人总结,欢迎探讨。

作者: 郑齐育    时间: 2013-10-12 16:49
面板,窗口,对话框等都算容器。JDK中对Cotainer()构造方法的描述,public Container()构造一个新的 Container。可以直接扩展 Container,但在这种情况下是轻量级的,并且它必须被位于本机组件树中更高处的某一个父容器包含。(比如说 Frame)。 另外对于Container()的几个重载的add的()方法都有提示这是一个适用于addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法,addImpl()方法抛出的异常描述为
IllegalArgumentException - 如果 index 无效;如果 comp 是此容器的子容器,则有效范围是 [-1, getComponentCount()-1];如果组件不是此容器的子容器,则有效范围是 [-1, getComponentCount()]
IllegalArgumentException - 如果 comp 是此容器的祖先容器
IllegalArgumentException - 如果向容器添加一个窗口
NullPointerException - 如果 comp 为 null
也就是说至少向组件中添加窗口是不行,不过可以添加其它满足要求的组件。
作者: 杨增坤    时间: 2013-10-13 08:31
是的,在老师后的例子都可以理解,在Frame床体上添加Button..等
        在对话框,就是处理路径是否正确的对话框上,添加了lable和Button确定按钮

作者: To    时间: 2013-10-13 13:54
楼主你好,如果问题已解决请将帖子状态修改为提问结束,如果未解决请继续提问,谢谢合作




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2