在一个JFrame中使用netbean多个类打开?

时间:2014-09-19 10:20:23

标签: java swing netbeans jframe

我正在开发基于swing的项目。这个项目有10个以上的子类和一个主菜单类,其中包含多个选项卡,点击这些选项卡打开多个J Frame窗口,但我希望不打开多个窗口,一切都出现在一个主窗口。当调用另一个类时,它用现有的类GUI替换它的GUI而不打开一个新窗口?谢谢。

1 个答案:

答案 0 :(得分:0)

您最好的选择可能是使用JInternalFrame而不是您正在使用的JFrame窗口。您可以将JInternalFrame用作任何JComponent。有关详细信息,请转到Java Docs

this tutorial

中还介绍了使用内部框架

这是一个代码示例:

//Need to have a JDesktopPane to add the JInternalFrame to
JDesktopPane desktop;

//Adding the internal frame to the JDesktopPane
MyInternalFrame frame = new MyInternalFrame();
frame.setVisible(true);
desktop.add(frame);
try {
   frame.setSelected(true);
} catch (java.beans.PropertyVetoException e) {
    //Do error stuff - optional
}

其中:

//The custom internal frame
private class MyInternalFrame extends JInternalFrame {

    public MyInternalFrame() {
        super("MyInternalFrame",
                true, //resizable
                true, //closable
                true, //maximizable
                true);//iconifiable

        setSize(300, 200);
    }

    public MyInternalFrame(int offsetX, int offsetY) {
        super("MyInternalFrame",
                true, //resizable
                true, //closable
                true, //maximizable
                true);//iconifiable

        setSize(300, 200);
        setLocation(offsetX, offsetY);
    }
}

源自this blog post

的代码