2013-07-20 65 views
1

我正在開始一個新的GUI項目,我想知道哪裏是放置物品代碼的最佳位置,例如按鈕,文本字段或其他東西?我認爲代碼的最佳位置不在主類中,因爲它似乎對於一個文件來說代碼太多,難以管理。這是我通常這樣做的方式(全部以一種文件方式)。哪裏可以放置gui物品代碼

package apollo; 

import java.awt.FlowLayout; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JTextField; 

public class Apollo{ 

    protected JFrame frame = new JFrame("Apollo"); 

    public Apollo(){ 
     frame.setSize(800, 600); 
     frame.setLayout(new FlowLayout()); 
     frame.setLocationRelativeTo(null); 
     frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
     frame.setVisible(true); 
     this.buildLayout(); 
     frame.revalidate(); 
    } 

    protected void buildLayout(){ 
     JTextField txt = new JTextField(30); 
     frame.add(txt); 

     JButton btn = new JButton("Submit"); 
     frame.add(btn); 
    } 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args){ 
     Apollo a = new Apollo(); 
    } 
} 
+1

也許這篇文章如何組合一個Swing GUI將有所幫助。 http://java-articles.info/articles/?p=349 –

+0

另一個例子:[MVC - Model View Controller Pattern](http://www.onjava.com/pub/a/onjava/2004/07/ 07/genericmvc.html) –

回答

4

您的主要類通常應該只有一個主要方法。

該主要方法應該創建一個處理初始化GUI的類。

對於其他UI組件,如果您重用它們,或者它們的代碼很大,那麼該組件需要它自己的類。

如果您永遠不會重用該組件,並且其代碼很小,則不需要它自己的類。

+1

+1您的答案的第一部分。 -1爲使用UI設計師建議。 –

+2

我認識的專業人員在這個問題上被拆分,因爲依賴於代碼生成器的代碼依賴於正在適當更新的生成器。許多人使用他們自己的良好磨練的圖書館。無論如何,我同意很多人的觀點,除非學生了解Swing庫,否則他們應該手動編寫代碼以獲得理解,因爲代碼生成器會隱藏細節並可能會妨礙理解。一旦實現,那麼可以根據需要使用代碼生成。 –

+1

@HovercraftFullOfEels非常好的一點。在大學裏編寫UI代碼在我的職業生涯中幫助過我。有時UI生成器產生意想不到的輸出,如果你不明白它產生的代碼,你怎麼能解決這個問題?編輯答案。 –