2008-12-16 145 views
14

我一直在Swing工作了一段時間,但是JFrame s,paint()super等的整個模型/結構在我的腦海裏都很模糊。 我需要一個清晰的解釋或鏈接來解釋整個GUI系統是如何組織的。Java GUI Swing模型說明

回答

13

同樣的事情發生在我身上。實際上直到今天,我還不完全知道它是如何工作的。

Swing是一個非常靈活的框架 - 可能太靈活了。隨着靈活性的出現,很多抽象和抽象都會引起混亂。 :)

我發現以下文章值得閱讀。他們幫助我更好地理解Swing的全貌。

他們解釋得很好如何模型和委託的工作。它總是使我瘋了,當我看到那些JLabelLabelUIui.update

+1

非常有用的鏈接 - 以前沒有見過;稍後再收藏一下。 – 2008-12-16 02:00:18

2

你看過Java Swing教程(點擊here)?它在覆蓋開發Swing應用程序的基礎知識方面做得很好。

0

Filthy Rich Clients通過切特·哈澤和羅曼蓋伊是關於Java UI一個偉大的書。它也涵蓋了一些更高級的東西,但是介紹和很少的第一章很好地解釋了基本的東西。

0

如果在閱讀Swing教程後發現您的興趣在於更高級的主題,那麼您也可以參閱Robinson和Vorobiev的Swing Second Edition

2

由於此問題的標記爲JFrame,因此我會建議一些鏈接以瞭解JFrame和其他頂級Swing容器如何工作。

我還發現Swing是(並且仍然)非常重要,每隔一段時間需要看一下Sun提供的文檔 - 每次檢查時,我似乎都會學到一些新東西。

一,基礎知識:JFrame類來自Java API規範。 Java API規範通常提供有關類的詳細信息。在這種情況下,您會注意到有幾個鏈接,如The Java Tutorials中的How to Make Frames部分。

除此之外,我還建議查看The Java Tutorials中的Lesson: Using Swing Components。本課程提供了有關如何使用Swing中提供的組件以及一些有用示例的說明。

有關我開始使用Swing時感到困惑的更多細節部分,都是不同類型的窗格,例如ContentPane,RootPane,GlassPaneUsing Top-Level Containers部分提供有關頂級容器的容器層次結構的信息和有用的圖表。 How to Use Root Panes部分詳細介紹了Glass,Layered和Content窗格以及大量示例。

0

我發現只需在源代碼中瀏覽(如果您使用的是NetBeans,按住Ctrl鍵單擊一個名稱)非常有用。如果我看到方法出現在我不熟悉的完成對話框中,那麼我只需單擊「轉到源代碼」並環視四周,直到我熟悉它爲止。

1

我發現Swing Explorer是理解組件層次結構(特別是在複雜的GUI中)並查看屬性(alas,只讀:我們習慣於Firebug的便利!)的寶貴工具。它有一個Eclipse插件。