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

Java 使用netbean在一个JFrame中打开多个类?,java,swing,netbeans,jframe,Java,Swing,Netbeans,Jframe,我正在从事基于swing的项目。该项目有10多个子类和一个包含多个选项卡的主菜单类,单击这些选项卡可以打开多个J框架窗口,但我希望在不打开多个窗口的情况下,所有内容都显示在一个主窗口中。当调用另一个类时,它会将其GUI替换为现有的类GUI没有打开新窗口?谢谢 您最好的选择可能是使用JInternalFrame,而不是您现在使用的JFrame窗口。您可以将JInternalFrame用作任何JComponent。有关更多信息,请转到 中还介绍了如何使用内部框架 下面是一个代码示例: //Need

我正在从事基于swing的项目。该项目有10多个子类和一个包含多个选项卡的主菜单类,单击这些选项卡可以打开多个J框架窗口,但我希望在不打开多个窗口的情况下,所有内容都显示在一个主窗口中。当调用另一个类时,它会将其GUI替换为现有的类GUI没有打开新窗口?谢谢

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

中还介绍了如何使用内部框架

下面是一个代码示例:

//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);
    }
}

源于

的代码考虑使用CardLayout您可以使用JInternalFrame或替换JPanel@ThusithaThilinaDayaratne:请正确拼写推荐的类名JInternalFrame、JPanel等。CardLayout或JInternalFrame都适合我的想法?@SurajAli:任何一个都可以;请编辑您的问题,以包括一个显示您在实施所选方法时遇到的任何问题的列表。