如何将JPanel从其他类包含到main

时间:2014-09-22 13:09:45

标签: java swing jpanel

我有这个其他类,我在其中制作了面板。如何在Main类中添加此面板(当我像这样运行时,我得到空白窗口)。

public class Other extends JFrame {

    JTextField input = new JTextField(4);

    public JPanel panel () {
        //JPanel for all
        JPanel totalGUI = new JPanel();
        totalGUI.setLayout(null);

        //Input panel
        JPanel inputPanel = new JPanel();
        inputPanel.setLayout(null);
        inputPanel.setLocation(50,50);
        inputPanel.setSize(250, 30);
        totalGUI.add(inputPanel);

        input.setSize(100,30);
        input.setLocation(150,30);
        inputPanel.add(input);

        totalGUI.setOpaque(true);
        return totalGUI;
    }

    public Other () {
        super("Guess The Number");
    }
}

这是我的主要课程:

public class Main {

    public static void main (String[] args) {

        Other obj = new Other();
        obj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        obj.setSize(300,300);
        obj.setVisible(true);
    }
}

3 个答案:

答案 0 :(得分:3)

只需在JPanel的构造函数中添加JFrame

public Other(){
    super("Guess The Number");
    add(panel());
}

答案 1 :(得分:2)

您根本不应该从Main类访问该面板,不需要它。要将面板添加到整个框架,请将其写入Other构造函数:

setContentPane(panel());

如果您想保留面板并只添加面板,请改为编写:

getContentPane().add(panel());

您也可以使用此行,但它仍然存在于AWT中,不应在Swing应用程序中使用:

add(panel());

答案 2 :(得分:-1)

你应该调用JFrame对象的add函数并将JPanel添加到它。 在main函数中,在初始化Other对象后执行此操作:

obj.add(obj.panel());