2015-09-05 54 views
1

最好從main的同一個類中的一個方法啓動用戶界面,或從main調用的另一個類中啓動用戶界面?這裏的一個示例:啓動GUI:Facade vs main

從主

Main.java

package main_version; 

import javax.swing.JFrame; 
import javax.swing.SwingUtilities; 

public class Main { 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       launchGUI(); 
      } 
     }); 
    } 

    private static void launchGUI() { 
     JFrame frame = new JFrame("Main version"); 
     //other code 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(333, 333); 
     frame.setVisible(true); 
    } 

} 

從另一個類

Main.java

package facade_version; 

import javax.swing.SwingUtilities; 

public class Main { 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       UserInterface.lauch(); 
      } 
     }); 

    } 

} 

package facade_version; 

import javax.swing.JFrame; 

public class UserInterface { 

    public static void lauch() { 
     JFrame frame = new JFrame("Facade version"); 
     //other code 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(333, 333); 
     frame.setVisible(true); 
    } 
} 
+0

你認爲它有什麼區別? – Dici

+1

@Dici:關於功能當然不是。但是對於外觀來說,主類僅依賴於UserInterface類(而不是JFrame,最終還有其他圖形組件)。 還是我錯了?問題的原因是這樣的。 –

回答

-1

我建議具有不同的類中的每個GUI組件,對於可重用性UserInterface.java。

然而,對於小型項目來說,如果只想測試某些東西,那麼他可以跳過創建多個類別。編譯器沒有區別。

+0

在這裏一切似乎都是靜態的,所以在任何情況下都沒有組件 – Dici

+0

@Dici JFrame是組件 –

+0

我的意思是,OP沒有定義任何組件。通常,GUI類會擴展'JFrame'並具有一些屬性,從而創建一個新組件,但在這種情況下,一切都是靜態的。這兩個片段在每個方面都是相同的 – Dici

相關問題