添加将JPanel扩展到JFrame的公共类

时间:2014-05-14 20:06:24

标签: java swing jframe jpanel

基本上,正如标题所说,我在解决如何添加将JPanel扩展到JFrame的类时遇到了一些问题。

我已经在这里和其他论坛上看过了,但我尝试过的答案都没有。

我还有3个单独的文件,我的main.java是我的frame.java和panel.java(为方便起见,缩写) 显然,将公共课程放在不同的文件(?)中是一种很好的做法,所以我被告知了! 我非常感谢有关如何将JPanel实际添加到JFrame的任何帮助,甚至只是我可能没有看到的一些文档的链接。此外,我还要接受任何人对我输入/编排代码的方式的任何建设性批评。

谢谢!

main.java

public class MyGuiAttempt {
    public static void main(String[] args) {

        new mainFrame();                

    }
}

frame.java

public class mainFrame extends JFrame {

    public mainFrame() {
        setVisible(true);
        setTitle("My Game");
        setSize(800, 600);
        setResizable(false);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    
        add(mainScreenMenu); //This is where I'm clearly going wrong.
    }
} 

panel.java

public class mainScreenMenu extends JPanel {

    public mainScreenMenu() {
        JLabel homeMenuBackground = new JLabel(new ImageIcon("images/my_image.jpg"));
        setPreferredSize(new Dimension(800,600));
        add(homeMenuBackground);
        setVisible(true);
    }

}

2 个答案:

答案 0 :(得分:3)

您需要创建班级的新实例

 add(new mainScreenMenu());

答案 1 :(得分:2)

您混淆对象JFrameJPanelmainScreenMenu(应该命名为MainScreenMenu)是类。要拥有一个具体的框架,您需要创建一个JFrame类型的对象。要拥有MainScreenMenu类型的具体面板,您需要创建MainScreenMenu类型的对象:

MainScreenMenu theMenu = new MainScreenMenu();
add(theMenu);