2011-11-02 103 views
11

我想如果有一些在Java中開發的項目來學習Swing最佳實踐。我的意思是通過SVN或類似的方式在互聯網上託管的開源項目。我一直在閱讀Stackoverflow中關於這個主題的一些問題,但我會看到一些項目。謝謝。一個很好的Swing項目,用於學習最佳實踐

回答

8

我學習Swing最佳實踐的方式是閱讀JDK中的Swing源代碼並練習。遵循Sun的做法,你將走在正確的道路上。

閱讀JTable,JTree,JScrollPane,各種LookAndFeels,SwingWorker,SwingUtilities的實現。他們的事件處理和MVC模式非常複雜,但非常易讀,可維護和可擴展。 Essentailly,每次你使用一個組件時,都要閱讀源代碼並理解他們做了什麼和爲什麼。最終,你會開始做同樣的事情。

而最重要的是,代碼。寫一些大的程序,你會看到看起來不正確或最佳的東西。來到Stack,找出你做錯了什麼或者可以做得更好。寫別的東西,並做同樣的事情。

這就是說,下面的項目(或可能有)好碼:

SwingX - SwingX的維護者是太陽/ EX-太陽的人,我一直認爲它是未來非官方的孵化器擺動功能。 (一個JDBC客戶端) - 我沒有真正看過它們的源代碼,但是我已經使用了這個程序好幾年了,並且它沒有顯示在寫得不好的Swing程序中的任何常見缺陷。隨着它的功能如何強大,以及它的運作效果如何,我會把它寫得非常好。

InfoNode(一個強大的對接框架) - 我已經經歷了很多他們的代碼,並且它非常穩定。

JFreeChart(一個功能強大的圖表庫) - 不是最好的代碼,但比平均值要好得多,特別是考慮到一箇舊計劃,它從來沒有真正用於人們使用它的所有事情。也就是說,它是非常可擴展的,而且我從來沒有遇到過將它塑造成符合我需要的問題(這比它的初衷要多得多)。

GlazedLists(一個高性能的基於事件的列表庫) - 不完全是Swing,但它的事件處理類似於Swing。他們也有Swing模型和一些非常快速的自定義組件的實現。

JIDE Common Layer:大量的自定義組件的集合,作爲其商業組件的基礎。我沒有瀏覽他們的代碼,但他們的組件很漂亮,而且由於他們的主要焦點是商業Swing組件,我再一次把錢放在他們的代碼中。

3

我發現使用Swing編寫的專業質量的應用程序非常有趣,如IntelliJ IDEA Community Edition。現在它是開源的,你可以查看代碼並開始挖掘。但是,預先警告,沒有評論!