当前位置: 首页 > 知识库问答 >
问题:

Java Swing中组件类继承层次的澄清?

那弘
2023-03-14

我正在Swing上阅读Core Java Volume 1。我很难理解这一段:首先,作者说

组件可以放置在面板等容器内。容器本身可以放在其他容器中,因此类容器扩展了组件。图9.8显示了组件的继承层次结构,

注意:不幸的是,继承层次结构在两个方面有些不干净。首先,顶级窗口,如JFrame,是container的子类,因此也是Component的子类,但它们不能放在其他容器内。而且,JComponent是Container的子类,而不是Component。因此,可以将其他组件添加到JButton中(但是,这些组件不会显示)。

共有1个答案

甄华清
2023-03-14

正如@MadProgrammer在评论中所说,author强调了对象层次结构告诉您的内容和API所能做的内容之间的差异。JFrame和JDialog是顶级容器。如果仔细观察层次结构,这些顶级容器并不继承JComponent。相反,它们继承自AWT窗口,这使得这些顶级容器在swing中具有特殊性,并使它们成为重量级组件。因此这些重量较大的顶层容器不能放置在另一个容器或组件内。扩展JComponents的所有组件都是轻量级组件。在这一点上,所有轻质部件可以被放置在另一个轻质部件或顶层容器内。

如果我走错了让我知道...:)

 类似资料:
  • SQLAlchemy支持三种继承形式: 单表继承 ,其中几种类型的类由一个表表示, 具体的表继承 ,其中每种类型的类都由独立的表表示,并且 联接表继承 ,其中类层次结构在依赖表中被分解,每个类都由其自己的表表示,该表只包含该类的本地属性。 最常见的继承形式是单表和联接表,而具体的继承则面临更多的配置挑战。 在继承关系中配置映射器时,SQLAlchemy可以加载元素 polymorphically

  • 本文向大家介绍JavaScript中的继承之类继承,包括了JavaScript中的继承之类继承的使用技巧和注意事项,需要的朋友参考一下 继承简介       在JS中继承是一个非常复杂的话题,比其他任何面向对象语言中的继承都复杂得多。在大多数其他面向对象语言中,继承一个类只需使用一个关键字即可。在JS中想要达到继承公用成员的目的,需要采取一系列措施。JS属于原型式继承,得益于这种灵活性,我们既可以

  • 问题内容: 我有两个平行的继承链: 我的经验是,并行继承层次结构在增长时会成为维护上的麻烦。 即不添加方法到我的主要类。 如何避免并行继承层次结构而又不破坏关注点分离的概念? 问题答案: 我正在考虑使用“访客”模式。 这样,您就可以避免多余的继承树,并使格式化逻辑与Vehicle类分开。当然,当您创建新的载具时,您必须向Formatter接口添加另一种方法(并在Formatter接口的所有实现中实

  • 当使用“joined”、“single”或“concrete”表继承样式在继承层次结构中映射类时,如中所述 映射类继承层次结构 通常的行为是,对特定基类的查询也将生成与子类相对应的对象。当单个查询能够返回每个结果行具有不同类或子类的结果时,我们使用术语“多态加载”。 在多态加载领域,特别是联合表继承和单表继承,还有一个额外的问题,子类属性需要预先查询,然后再加载。当预先查询某个特定子类的属性时,我

  • 我一直在做一个基本的类继承练习,尽管我认为我已经掌握了它的jist,但我的程序并没有按应有的方式工作。我遇到了编译错误,但还没有弄清楚原因——如果你们都能在这里帮助我,那就太好了。 首先,这里有三个文件1。人java——基类2。大学生java——一个派生的Person类。java 3。家庭java——不太确定,我认为它是自己的基类 人java有两个实例变量,String name和int age,