A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dolphin 中级黑马   /  2013-10-12 14:48  /  1693 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

awt构建图形化界面的时候,有讲到构件Compent,它分Container容器和其他的,说容器是一特殊组件,可添加其他组件,那继承它的面板,窗口,对话框等也都算容器?也都可以随意添加其他组件,包括同级容器?

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1

查看全部评分

4 个回复

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

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1

查看全部评分

回复 使用道具 举报
面板,窗口,对话框等都算容器。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
也就是说至少向组件中添加窗口是不行,不过可以添加其它满足要求的组件。

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1

查看全部评分

回复 使用道具 举报
是的,在老师后的例子都可以理解,在Frame床体上添加Button..等
        在对话框,就是处理路径是否正确的对话框上,添加了lable和Button确定按钮
回复 使用道具 举报
To 金牌黑马 2013-10-13 13:54:30
报纸
楼主你好,如果问题已解决请将帖子状态修改为提问结束,如果未解决请继续提问,谢谢合作
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马