Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 启动GUI:facade vs main_Java_User Interface_Facade - Fatal编程技术网

Java 启动GUI:facade vs main

Java 启动GUI:facade vs main,java,user-interface,facade,Java,User Interface,Facade,最好从main的同一类中的方法启动用户界面,或者从main调用的不同类启动用户界面?这里有一个例子: 从主菜单中选择 Main.java 来自另一个班级 Main.java UserInterface.java 为了可重用性,我建议将每个GUI组件放在不同的类中 然而,对于小项目来说,这并没有太大的区别,如果一个人只想测试一些东西,他可以跳过创建多个类。它对编译器没有影响。你认为它有什么影响吗?@Dici:关于功能,当然没有。但是对于facade,主类只依赖于UserInterface类(而不依

最好从main的同一类中的方法启动用户界面,或者从main调用的不同类启动用户界面?这里有一个例子:

从主菜单中选择

Main.java

来自另一个班级

Main.java

UserInterface.java


为了可重用性,我建议将每个GUI组件放在不同的类中


然而,对于小项目来说,这并没有太大的区别,如果一个人只想测试一些东西,他可以跳过创建多个类。它对编译器没有影响。

你认为它有什么影响吗?@Dici:关于功能,当然没有。但是对于facade,主类只依赖于UserInterface类(而不依赖于JFrame和最终的其他图形组件)。还是我错了?这个问题的原因是,这里的一切似乎都是静态的,所以两者中都没有组件case@DiciJFrame是一个组件平均值,OP不定义任何组件。通常,GUI类会扩展
JFrame
并具有一些属性,从而创建一个新组件,但在这种情况下,所有内容都是静态的。这两个片段在各个方面都是等效的
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);
    }

}
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);
    }
}