簡體   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