JFrame - 在一个JFrame中使用多个面板是一个好习惯吗?

时间:2014-07-13 10:28:00

标签: java swing jframe jpanel

现在,我正在制作一些只有不到9页(或面板)的报告生成器。如果我只是在一帧内包含这些,我在想什么。我会随时调用并处理面板实例。这只是将数据库连接等内容包含在一个JFrame中,并且在切换页面时并不总是调用.setVisible(true).setVisible(false)。这也是当用户单击任何页面上的关闭按钮时,整个软件关闭而无需调用多个.dispose()方法。

我想知道这是否可能,或者它是否会使整个开发过程复杂化。

现在我在我的MainFrame类(这是帧类)中有这个。

public MainFrame(){
    setContentPane(new LoginScreen(this));
    this.setVisible(true);
}

据我所知,setContentPane()可以调用另一个JPanel向用户显示。但是,你能处理一个小组吗?据我所知,.dispose()是为JFrame保留的。

1 个答案:

答案 0 :(得分:3)

可以将多个JPanel对象放入一个JFrame对象中。但是,您应该addremove这些面板,而不是dispose面板。

但是,在你的情况下,我认为最好的选择是CardLayout。你可以用它来做你需要的一切。不要手动addremove小组。

CardLayout有一个官方示例:

请参阅http://docs.oracle.com/javase/tutorial/uiswing/layout/card.html