如何从其他类导入/使用布局/ GUI?

时间:2017-01-26 10:00:32

标签: java swing

我有一个这样的主要类:

package ijsberenSpel;

public class Main{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

}

我有一个像这样的布局(gui)类:

package ijsberenSpel;

import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class Layout extends JFrame {

    private static final long serialVersionUID = 1L;

    private JLabel label;
    private JButton button;
    private JTextField textfield;

    public Layout() {
        setLayout(new FlowLayout());

        label = new JLabel("Hello World");
        add(label);

        textfield = new JTextField(15);
        add(textfield);

        button = new JButton("Submit");
        add(button);
    }

    public static void layout (String args[]){
        Layout gui = new Layout();
        gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        gui.setSize(500, 500);
        gui.setVisible(true);
        gui.setTitle("ijsberenspel");
    }
}

当我在主类中使用布局类中的代码时,一切正常,但我希望在其他类中使用布局/ gui等。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

只需你可以使用:

创建班级的新实例:

CREATE OR REPLACE

将其设为可见:

Layout layout = new Layout();

注意

layout.setVisible(true);

应该在

之后
gui.setVisible(true);
像这样:

gui.setTitle("ijsberenspel");

主要方法也应如下:

gui.setTitle("ijsberenspel");
gui.setVisible(true);

public static void main(String args[]){

答案 1 :(得分:1)

这是您的GUI类:

public class Layout extends JFrame {    

    private static final long serialVersionUID = 1L;

    private JLabel label;
    private JButton button;
    private JTextField textfield;

    public Layout() {

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(500, 500);        
        setTitle("ijsberenspel");
        setLayout(new FlowLayout());

        label = new JLabel("Hello World");
        add(label);

        textfield = new JTextField(15);
        add(textfield);

        button = new JButton("Submit");
        add(button);
    } 
}

这是主要方法的主要类:

package ijsberenSpel;

public class Main{    

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                Layout layout = new Layout();
                layout.setVisible(true);
            }
        });
    }

}