2011-04-16 58 views
3

我正在研究開發用於生物分析工具的Java GUI。我的問題是,我可以在相同的模型視圖控制設計模式下使用AWT和SWING庫嗎?或者,他們是以不同的方式控制的兩個圖書館?我想知道如果我可以將它們置於同一屋檐下,以重用與這兩個庫一起編寫的現有代碼。非常感謝您的寶貴時間。AWT XOR SWING在一個應用程序中一起?

+0

哪個MVC? MVC有趣的是有很多不同的你不知道哪一個可以選擇:MVC type1,type2,HVMC/HPAC? HMVC是我目前最喜歡的:) – SyntaxT3rr0r 2011-04-16 11:14:50

+0

@ SyntaxT3rr0r,以及特別用作強大的MVC指南/參考的書籍?我有頭一個設計模式,但我的學術背景,它看起來像一個卡通。 – wespiserA 2011-04-16 14:08:40

回答

4

Swing是建立在AWT之上,你可以混合使用Swing和AWT,它會在技術上的工作,但有一些限制:

  • 重量級VS輕量級的組件:在AWT組件是重量級的 - 它們對應於本地操作系統窗口。這意味着所有AWT組件都出現在兄弟Swing組件上方。 (例如,在同一個容器中放置一個awt List和一個swing JList,並且該列表將始終顯示在JList上方。)

  • 外觀:AWT組件外觀和感覺是本機的,因爲它們是本機組件。 Swing組件具有可插入的外觀和感覺,它定義了它們的外觀和行爲。如果您選擇L & F來匹配本地平臺,這些組件僅僅是對本地外觀和感覺的「模仿」,並且可以與AWT對應組件的行爲不同。 (例如JButton的VS AWT按鈕)。

由於這些原因,它可能是明智的做法是隻使用一個UI庫,想必擺動。編輯:JDK 6(更新12)提供重量級和輕量級組件的無縫集成,因此混合將無縫地工作。編輯:JDK 6(更新12)提供重量級和輕量級組件的無縫集成,因此混合將無縫地工作。所以第一點不再是事實 - 但兩個UI工具包之間的外觀和感覺仍然不一致。

3

嗨是的,你可以使用兩者。但是沒有必要,更不建議混合這兩者。

例如,您可能會遇到一些嚴重問題,因爲AWT沒有「深度」概念。沒有不同的層次,等等。其他問題例如,這些框架的組件的外觀是不同的。編輯: 我很喜歡這個資源。繼續閱讀,並提供所有提及的問題,並附上說明性示例,您必須知道何時混合這兩個問題。 http://java.sun.com/products/jfc/tsc/articles/mixing/

Oi,Boro。

相關問題