Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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/4/macos/8.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 eclipse中的windowbuilder,不确定如何显示窗口_Java_Eclipse_Swing_Windowbuilder - Fatal编程技术网

Java eclipse中的windowbuilder,不确定如何显示窗口

Java eclipse中的windowbuilder,不确定如何显示窗口,java,eclipse,swing,windowbuilder,Java,Eclipse,Swing,Windowbuilder,我对Swing还比较陌生,所以我一直在使用windowbuilder尝试组装一个基本的GUI。设计界面工作得很好,但当我回到代码时,它是以一种我不熟悉的方式编写的,我正在努力让它真正运行 它生成的代码是: public class GUIControls extends JFrame{ public GUIControls() { getContentPane().setLayout(new CardLayout(0, 0)); JPanel panel = new JPan

我对Swing还比较陌生,所以我一直在使用windowbuilder尝试组装一个基本的GUI。设计界面工作得很好,但当我回到代码时,它是以一种我不熟悉的方式编写的,我正在努力让它真正运行

它生成的代码是:

public class GUIControls extends JFrame{

public GUIControls() {
    getContentPane().setLayout(new CardLayout(0, 0));

    JPanel panel = new JPanel();
    getContentPane().add(panel, "name_36737116256884");
    panel.setLayout(null);

    JButton InsertionSortButton = new JButton("Insertion Sort");
    InsertionSortButton.setBounds(32, 16, 101, 56);
    panel.add(InsertionSortButton);

    JPanel panel_1 = new JPanel();
    getContentPane().add(panel_1, "name_36737137352442");
    InsertionSortButton.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent arg0) {
            CardLayout cardLayout = (CardLayout) getContentPane().getLayout();
            cardLayout.show(getContentPane(), "name_36737137352442");
        }
    });
}
(当鼠标点击按钮时所采取的动作是由我编写的,我没有测试它,因为我无法运行它)

通常我会:

public void runGUI(){
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            createGUI();

        }
    });
}
createGUI是我用来在没有windowbuilder的情况下创建(非常糟糕的)GUI的方法,但我不能在这里使用GUI控件,因为它不适用于runnable(事实上,我甚至不确定当某个东西不是返回值时它是什么,它仍然是方法吗?)

有人知道我是怎么做的吗


谢谢

您需要实例化
GUIControls
的实例并使其可见,例如

public void runGUI(){
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            GUIControls guiControls = new GUIControls();
            guiControls.pack();
            guiControls.setLocationRelativeTo(null);
            guiControls.setVisible(true);
        }
    });
}

ps-我知道Window Builder喜欢使用
null
布局,但我会尽可能避免使用它们-IMHO

GUIControls从何扩展而来?啊,我的错,它在类GUIControls中,即:公共类GUIControls扩展JFrame,我会将其添加到主要帖子中。这很有效!谢谢。但接下来的问题是,“公共控制”到底是什么?它是实例化的,这是否意味着它是一个类?如果是这样的话,它怎么能不宣布自己是这样的呢?(另外,我在接下来的4分钟内不能接受你的答案,所以,嗯……期待着!)
publicguicontrols
是一种称为构造函数的特殊方法。它用于初始化对象的新实例。因此,当您调用
new GUIControls()
时,Java将为
对象
分配内存,初始化任何实例字段并调用构造函数(由
new
命令指定)