现在,我正在制作一些只有不到9页(或面板)的报告生成器。如果我只是在一帧内包含这些,我在想什么。我会随时调用并处理面板实例。这只是将数据库连接等内容包含在一个JFrame
中,并且在切换页面时并不总是调用.setVisible(true)
和.setVisible(false)
。这也是当用户单击任何页面上的关闭按钮时,整个软件关闭而无需调用多个.dispose()
方法。
我想知道这是否可能,或者它是否会使整个开发过程复杂化。
现在我在我的MainFrame
类(这是帧类)中有这个。
public MainFrame(){
setContentPane(new LoginScreen(this));
this.setVisible(true);
}
据我所知,setContentPane()
可以调用另一个JPanel
向用户显示。但是,你能处理一个小组吗?据我所知,.dispose()
是为JFrame
保留的。
答案 0 :(得分:3)
可以将多个JPanel对象放入一个JFrame对象中。但是,您应该add
或remove
这些面板,而不是dispose
面板。
但是,在你的情况下,我认为最好的选择是CardLayout。你可以用它来做你需要的一切。不要手动add
和remove
小组。
CardLayout有一个官方示例:
请参阅http://docs.oracle.com/javase/tutorial/uiswing/layout/card.html。