Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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:为什么我要实例化一个对象来显示GUI?_Java_Swing_User Interface - Fatal编程技术网

java中的GUI:为什么我要实例化一个对象来显示GUI?

java中的GUI:为什么我要实例化一个对象来显示GUI?,java,swing,user-interface,Java,Swing,User Interface,正如您可能知道的,这个程序只是在JFrame中显示一个带有“我的名字是Bob”的GUI。我对编程比较陌生,我仍然不明白为什么在runGUI方法中需要“NameGUI greeting=newnamegui();”代码。在我看来,它只是实例化了一个从未使用过的对象。但是,当我取出代码片段时,GUI不会显示。我错过了什么 public NameGUI() { JFrame frame = new JFrame("Name"); frame.setDefau

正如您可能知道的,这个程序只是在JFrame中显示一个带有“我的名字是Bob”的GUI。我对编程比较陌生,我仍然不明白为什么在runGUI方法中需要“NameGUI greeting=newnamegui();”代码。在我看来,它只是实例化了一个从未使用过的对象。但是,当我取出代码片段时,GUI不会显示。我错过了什么

    public NameGUI() { 
        JFrame frame = new JFrame("Name"); 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel nameSpace = new JPanel(); 
        JLabel name = new JLabel("My name is Bob"); 
        nameSpace.add(name); 
        frame.setContentPane(nameSpace);
        frame.pack(); 
        frame.setVisible(true); 
    }

    public static void runGUI() {
        JFrame.setDefaultLookAndFeelDecorated(true);
        NameGUI greeting = new NameGUI(); 
    }

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() { 
            public void run() {
            runGUI();
            }       
        }); 
    }
}
在我看来,它只是实例化了一个从未使用过的对象

你说得有点对。这行内容
NameGUI问候语=newnamegui()的作用是创建一个从未使用过的变量,即变量
问候语
。清洁剂可能需要:

public static void runGUI() {
    JFrame.setDefaultLookAndFeelDecorated(true);
    new NameGUI(); 
}

就这样。但是要知道,在这两种情况下,都会创建一个NameGUI对象,并使用它,它的构造函数创建JFrame并显示它。

我看不到“}”的开头圆括号`<代码>为什么我要实例化一个对象来显示GUI?
-不确定为什么要这样做。没有必要这样构造代码。您可以将所有代码移到runGui()方法中。