2015-11-03 104 views
2

我的任務是「識別並修復任何錯誤」。該圖片來自Java教科書,顯示了Swing結構的組織結構。這對我來說看起來很好,我沒有看到任何問題。Java Swing組織

有人可以解釋一下嗎?

JPanel應該放在JComponent之前嗎?

enter image description here

+2

只要看看API。 –

+0

我不知道我會在API中找到該位置。 – Nic

+0

API中的每個類條目都在頂部列出了它的層次結構 - 您不能錯過它。認真。例如[The JFrame API entry](http://docs.oracle.com/javase/8/docs/api/javax/swing/JFrame.html)。只要看看 - 這是在黑色和白色。 –

回答

3

這顯然是一個有趣的問題,通過事實,沒有人注意到這個問題,到目前爲止,有相當經驗的開發者評論你的問題表示。

問題是ComponentContainer之間的箭頭指向了錯誤的方向,但由於垂直放置遵循將基類置於子類之上的典型模式,因此很容易忽視。我不會打電話給那些以易於忽略的圖形細節爲重點的問題。

除此之外,您可以通過在繼承層次樹中插入AbstractButtonJTextComponent並添加更多缺少的前端類來改進樹,但考慮到圖形是簡化樹,缺少這些類並不是真正的錯誤。

您可以將樹與實際繼承樹in the official documentation進行比較。

1

Swing中這個「破碎」層次結構的原因是所有組件都是從AWT的Container中派生出來的,因此像add(Component)這些沒有意義的方法是歷史性的。

Swing最初是作爲第三方JAR發佈的,需要下載到JDK 1.1瀏覽器並在此工作。所以它需要在JDK 1.1 AWT之上工作。這是他們爲實現這一目標而設計的。

現代GUI框架,猿Swing例如或者JavaFX跳過了這種妥協,這是Swing的難點之一。