Java 如何在JFrames中使用setVisible?
在我的程序中,我有两个Java 如何在JFrames中使用setVisible?,java,swing,jframe,Java,Swing,Jframe,在我的程序中,我有两个JFrame实例。当我点击next按钮时,我想显示下一帧并隐藏当前帧。因此我使用this.setVisible(false)和newNext().setVisible(true)。但在Next窗口中,如果我单击back按钮,我想将上一帧设置为再次可见,下一帧必须结束(这意味着必须退出) 有什么特殊的方法可以做到这一点吗?我怎么做 如果要销毁JFrame并释放所有相关资源,则应调用其上的方法。您可以将JFrames放在列表数据结构上,并根据显示的窗口保留对当前位置的引用。这样
JFrame
实例。当我点击next
按钮时,我想显示下一帧并隐藏当前帧。因此我使用this.setVisible(false)
和newNext().setVisible(true)
。但在Next
窗口中,如果我单击back
按钮,我想将上一帧设置为再次可见,下一帧必须结束(这意味着必须退出)
有什么特殊的方法可以做到这一点吗?我怎么做 如果要销毁JFrame并释放所有相关资源,则应调用其上的方法。您可以将
JFrames
放在列表数据结构上,并根据显示的窗口保留对当前位置的引用。这样就很容易转到下一个和上一个。但是请注意,添加到列表中的每个帧都将使用内存,并且在您将其放入列表中时都会有其状态
如果您试图创建一个类似向导的UI,您应该查找。考虑使用而不是查找有多少。然后
- 只需要一个JFrame
- 任何下一步/后退操作将仅在卡之间切换
这是一个古怪的图形用户界面。我建议对主GUI运行
JFrame
,当用户想要搜索时,弹出JOptionPane
(或modalJDialog
)以接受要搜索的详细信息。这将不会产生上述效果,但将遵循最终用户的“最小惊喜路径”。在next()窗口中创建主窗口的实例。。使用之前选择的隐藏主窗口的方法,例如,如果主窗口命名为gui,那么我们要做的就是
gui obj = new gui();
若你们现在点击“后退”按钮,你们也可以这样做
this.setVisibility(false);
obj.setVisibility(true);
这就是你所需要的
祝你好运。为什么不在一个框架中切换面板,例如使用
CardLayout
?+1,这里一定要考虑CardLayout管理器。不,我正在创建搜索框。在主菜单(框架),若我点击搜索按钮,它必须打开搜索框架,我想隐藏主菜单。但如果我退出搜索。我必须再次显示主菜单。我不能破坏主菜单对象。因为保存了一些信息。我想调用前一个对象。这意味着我想再次将其可见性设置为真。@JKAUSHALYA,它不会破坏组件,只是将其隐藏。为了显示前面的组件,需要简单调用show(…)
。其实没那么难。这个布局管理器正是您想要的。也许您应该阅读@mKorbel链接到您的教程。请参阅链接(特定)示例。否,我正在创建搜索框。在主菜单(框架),若我点击搜索按钮,它必须打开搜索框架,我想隐藏主菜单。但如果我退出搜索。我必须再次显示主菜单。我不能破坏主菜单对象。因为保存了一些信息。我想称之为previos对象。这意味着我想再次将其可见性设置为真。@JKAUSHALYA我不是读心术的人,如果我记得很多次我在基本内容上犯了错误,为了真正的帮助,你必须用可运行的代码编辑你的文章,这表明了你的问题,否则任何事情都只会是对黑暗的射击,像那样应该是正确的答案,我也是+1@mKorbel我也喜欢CardLayout
解决方案,但因为OP不希望这样。。