我正在进行基于swing的项目。这个项目有10多个子类和一个主菜单类,其中包含多个选项卡,单击这些选项卡可以打开多个J Frame窗口,但我希望在不打开多个窗口的情况下,所有内容都显示在一个主窗口中。当调用另一个类时,它用现有的类GUI替换它的GUI,而不打开新窗口?谢谢
您最好的选择可能是使用JInternalFrame
,而不是现在使用的JFrame窗口。您可以将JInternalFrame用作任何JComponent。有关更多信息,请参阅Java Docs
教程中也介绍了使用内部框架
这里还有一个代码示例:
//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);
}
}
代码来源于此博客文章