在我的程序中,我有两个JFrame
个实例。当我单击next
按钮时,我想显示下一帧并隐藏当前帧。我使用this.setVisible(false)
和新Next().setVisible(true)
。但是在Next
窗口中,如果单击back
按钮,我想要将前一帧设置为再次可见,并且必须结束下一帧(这意味着必须退出)。
有没有特殊方法可以做到这一点?我该怎么做?
答案 0 :(得分:6)
考虑使用CardLayout而不是寻找有多少JFrames。然后..
有很多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);
这就是你所需要的一切。
祝你好运。