2015-09-05 49 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

相关问题