繁体   English   中英

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

[英]clarification on inheritance hierarchy for the component class in Java Swing?

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

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

在此处输入图片说明

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

在我看来,他在照片前后的说法似乎是相反的。 我也不清楚作者在这里要说些什么。 如果有人可以举例说明某事,那将很有用,谢谢

正如@MadProgrammer在评论中所说,作者强调了对象层次结构告诉您的内容与API可以做什么之间的差异。 JFrame和JDialog是顶级容器。 如果仔细查看层次结构,这些顶级容器不会继承JComponent。 相反,它们是从AWT窗口继承的,这使这些顶级容器在摆动过程中很特殊,并使其成为重量级的组件。 因此,这些重量较重的顶层容器不能放置在其他容器或组件内。 扩展JComponents的所有组件都是轻量级的组件。 此时,可以将所有轻量组件放置在另一个轻量组件或顶层容器中。

让我知道我是否出错... :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM