2010-05-18 129 views
11

那麼我知道基本的Java並想學Swing,所以當然先看看Sun的網站,其中this tutorial是。我打算啓動它,但意識到它非常依賴NetBeans,我不太確定。學習Java Swing(GUI生成器與否?)

我不知道,因爲它是學習,我想成功,而不是一個漂亮的程序。

所以我認爲使用這樣的NetBeans會很棒,一旦我知道它,但我不想在沒有線索的情況下構建內容,當然這也可能在以後導致問題。

我的第一個問題是,這是正確的方式來做到這一點,我應該儘量不要依賴IDE?通過網站上的問題,大多數人推薦使用Sun教程,而我只看到一個與我的想法一致的答案,並且它們與this resource相關,這看起來很有希望。 或者也許我對Sun教程有錯誤的理解,也許它不依賴於IDE,它看起來就是這樣。

我的第二個問題是,如果你同意我的意見,你會推薦哪些資源(除了上面那個)?

感謝您的回答。

回答

7

我不會說Sun在他們的教程中依賴於NetBeans,就像引用NetBeans一樣,因爲NetBeans是Sun的IDE。

我使用Eclipse進行Java開發。一個好的IDE可以幫助你忙於工作,所以你可以專注於手頭的問題。

如果你想學習鞦韆,我推薦The Definitive Guide to Java Swing, Third Edition。本書將逐步介紹佈局和小部件,並使用和強化GUI開發的MVC模式。

對於Swing的高級開發人員,我建議使用Swing Hacks: Tips and Tools for Killer GUIs。本書向您展示了一些技巧,讓您的GUI流行起來。

+0

我很可能會拿到那本書,因爲某些原因,我更喜歡擁有一些東西而不是在線參考書。 – Paul 2010-05-18 23:22:33

+0

我也是這樣。即使使用雙顯示器,我也更喜歡使用大多數在線教程的書籍。 – 2010-05-18 23:26:38

+0

2000年左右,我從Core Java書籍中學習了Swing。希望他們仍然一樣好! http://www.amazon.com/Core-Java-TM-I-Fundamentals-8th/dp/0132354764/ref=pd_sim_b_1 – 2010-05-19 00:23:08

0

其實這些教程多次引用Netbeans,但通常還會告訴你如何在代碼中做東西。一旦你很好地掌握了Swing在一般情況下的工作方式,你可能會在需要的時候閱讀其中的每一個。

例如Using Swing Components對每個標準UI組件都有(或多或少)深入說明,並且Laying Out Componnents有關於標準佈局管理器的詳細信息。

這些是 - 至少對我來說 - 我回到最多的東西。和Netbeans分享一個非常簡短的接觸,我再也沒有碰過它的GUI構建器。

0

我認爲你應該先學習語言。使用IDE可以提高效率,但是如果您需要使用其他IDE,我認爲可能會導致問題出現。我覺得這本書非常有用,Introduction to Java Programming。書中的所有例子都在代碼中。

+0

這本書看起來只是針對Java,但它具體是Swing我正在學習,我已經對Java有合理的把握了 – Paul 2010-05-18 23:21:33

+0

它也有專門討論Swing的話題。以及如何執行具有相對基本GUI的應用程序。你可以用它作爲Swing的入門介紹。 – npinti 2010-05-18 23:26:33

1

本教程主要是關於代碼。這實際上只是關於NetBeans的一章。其餘部分是關於Swing的,可以在任何IDE中完成。

我不會推薦使用GUI構建器,因爲就像你說的,你不會理解底下發生了什麼。從簡單的Windows開始,通過添加GUI組件並與它們進行交互逐漸地工作。瞭解MVC做事方式的優點。

我可以給的最好的建議是不要坐下來「學習」擺動。選擇一個你感興趣的項目,你可以使用Swing。考慮到工作計劃的目標,你會更好地汲取教程給出的教訓。

+1

恕我直言,這是Swing最大的缺點之一。它被認爲是如此複雜,以至於沒有GUI生成器能夠有效地應對它,並且仍然允許開發人員按照自己的意願去做。在使用Swing編寫UI的許多小時之後,我仍然不知道如何構建代碼,使其仍然可讀和可維護。 – Joey 2010-05-18 23:21:02

+0

是的,這是我的想法。我正在考慮製作一個非常簡單的遊戲(或者可能是第一個簡單的遊戲),我認爲Swing會爲此工作。 – Paul 2010-05-18 23:23:19

1

看起來你是一個初學者在盪鞦韆。我會建議不要依靠Netbeans來開發swing UI。嘗試僅通過編寫代碼來設計UI。這將改進你的知識基礎,然後如果你願意,你可以使用可用的GUI構建器。

1

我從來沒有發現GUI構建器在Java中非常有用。 NetBeans有一個非常好的,但我強烈建議你建立自己的圖形用戶界面。

另一方面,你可能會發現Swing GU有些冗長。還有其他選擇,Java-FX顯然有一種聲明性語言,您可以在使用Java編寫所有其他語言時定義您的GUI。

此外,Groovy在Swing上有一個很好的聲明性語法層,可以在開始時讓事情變得容易一些。

如果您想試用Swing,我建議您在Groovy或BeanShell中使用它。這是一個真正快速只是鍵入:

f=new JFrame("My Frame") 
f.setVisible(true) 
f.setSize(300,600) 

並看到你的框架顯示在屏幕上。 (Groovy和Beanshell都很好地處理Java語法 - 它不像你沒有學習Swing - 它更像是你在翻譯中學習它而不是編譯器...

順便說一句,如果你不'不想使用Java語法的Groovy 與像這樣的東西(我可能是錯誤的只是一點點)

f=new JFrame(name="My Frame", visible=true, size=[300,600]) 

從而改變它由3周或4線下降到一個語句可以使其easer。

+0

如果您認爲編寫Swing GUI很繁瑣,那麼您應該開始考慮創建自己的輔助方法/類。 – Mot 2010-08-01 15:16:53

+0

@mklhmnn我總是這樣做,但是我正在和一個看起來很像Java的人說話。 – 2010-08-02 17:26:34

1

我總是在學習新的框架,最好的低級方式

  1. 如果我必須使用命令行編譯源文件,學習新的編程語言已被證明是最適合我的。使用像xCode這樣的IDE使得它更難以理解基礎知識
  2. 我學習瞭解Eclipse平臺的基本概念非常困難,因爲幾乎所有的教程都只是告訴你點擊Eclipse GUI。沒有最新的教程告訴要添加到什麼XML文件以及這些東西如何組合在一起。幸運的是,這對Swing來說要簡單得多。

因此我的建議:不要使用GUI構建器學習,因爲它隱藏了所有這有助於真正瞭解發生了什麼重要的事情。使用一個好的Java/Swing教程並開始輸入你的應用程序。瞭解基礎知識後,可以使用GUI構建器進行原型設計。