如何在JFrames中使用setVisible?

时间:2011-08-24 13:33:38

标签: java swing jframe

在我的程序中,我有两个JFrame个实例。当我单击next按钮时,我想显示下一帧并隐藏当前帧。我使用this.setVisible(false)和新Next().setVisible(true)。但是在Next窗口中,如果单击back按钮,我想要将前一帧设置为再次可见,并且必须结束下一帧(这意味着必须退出)。

有没有特殊方法可以做到这一点?我该怎么做?

5 个答案:

答案 0 :(得分:6)

考虑使用CardLayout而不是寻找有多少JFrames。然后..

  • 只需要一个JFrame
  • 任何下一个/后退操作都只会在卡片之间切换

有很多examples in this forum - 例如如图所示here

答案 1 :(得分:3)

这是一个奇怪的&奇怪的GUI。我建议为主GUI运行JFrame,当用户想要搜索时,弹出JOptionPane(或模态JDialog)以接受要搜索的详细信息。这不会产生上述效果,但会遵循最终用户的“最小惊喜路径”。

答案 2 :(得分:2)

如果要销毁释放所有相关资源的JFrame,您应该在其上调用dispose()方法。

答案 3 :(得分:2)

您可以将JFrames放在列表数据结构上,并根据您显示的窗口保留对当前位置的引用。通过这种方式,移动到下一个和上一个将很容易。但请注意,添加到列表中的每个帧都将使用内存,并且在将其放入列表时将具有其状态。

如果您尝试创建类似UI的向导,则应该查找Sun(oracle)tutorial here

答案 4 :(得分:0)

在next()窗口中创建主窗口的实例..并使用您选择隐藏主窗口的相同方法,例如,如果您的主窗口被命名为gui,那么我们要做的就是。< / p>

gui obj = new gui();

如果你现在点击后退按钮,那么

this.setVisibility(false);
obj.setVisibility(true);

这就是你所需要的一切。

祝你好运。