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

时间:2013-10-30 22:26:04

标签: java eclipse swing windowbuilder

我对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的方法,但是我不能在这里使用GUIControls,因为它不能用于runnable(事实上,我甚至不确定它是什么当某些东西不是返回值时,它仍然是一种方法吗?)。

有谁知道我如何运行它?

由于

1 个答案:

答案 0 :(得分:2)

您需要实例化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布局,但我会尽可能避免使用它们 - 恕我直言