Java 如何将所有组件刷新为其默认值或初始值?

Java 如何将所有组件刷新为其默认值或初始值?,java,swing,Java,Swing,我需要将帧重新加载到先前加载的状态,这意味着将所有帧组件返回到第一次放入帧时的状态。下面是我尝试过的一些问题 我还尝试使用frame.removeAll()删除frame的所有组件并重新加载,但它也不起作用 非常感谢您的帮助。谢谢如果我没弄错的话,例如,您有一个文本字段,有人在其中输入文本,然后您希望与其他组件一起重做 在这种情况下,没有内置的解决方案。你必须手动操作 我推荐以下行为:当您第一次构建框架时(创建组件、设置布局、配置操作等),将其放入单独的方法中,例如,void builtFram

我需要将帧重新加载到先前加载的状态,这意味着将所有帧组件返回到第一次放入帧时的状态。下面是我尝试过的一些问题

我还尝试使用frame.removeAll()删除frame的所有组件并重新加载,但它也不起作用


非常感谢您的帮助。谢谢

如果我没弄错的话,例如,您有一个文本字段,有人在其中输入文本,然后您希望与其他组件一起重做

在这种情况下,没有内置的解决方案。你必须手动操作

我推荐以下行为:当您第一次构建框架时(创建组件、设置布局、配置操作等),将其放入单独的方法中,例如,
void builtFrame()
。然后您可以有一个方法,例如
void revertFrame()
,它首先删除所有组件,然后调用
buildframe()
。如果您不继承
JFrame
,而只是拥有一个字段,这甚至会变得更容易,因为您可以让该方法使用例如
JFrame buildltframe()
(而不是void变量)生成初始状态帧

如何将所有组件刷新为其默认值或初始值


最好的方法是保留对每个组件的引用,只需重置每个组件的内容或模型(如视图所示)。

感谢您提供的解决方案。让我试试。我没有从JFrame中删除组件,而是将组件值重置为其原始状态。感谢您的帮助。请使用中所示的。这是为
CardLayout
设计的类型。顺便说一句-是为了更改其中的组件(例如,将一个带有树和文本区域的面板替换为另一个带有表格的面板),还是仅仅为了恢复为用户显示的组件的初始状态(如中所示,关闭树的节点并清除文本区域中的文本)。如果是后者,最好不要删除组件,而是更改当前组件的状态或模型。噢,请务必回答我的问题。我(和其他人)无法最好地说明如何处理此问题-没有更多细节。嗨,Andrew,感谢您提供的解决方案。我的目的是简单地恢复组件的初始状态,以便用户可以在框架中再次添加值。对于我尝试Greenthor解决方案时没有提前响应,我深表歉意。我也将看看您的卡片布局解决方案。“我的目的是简单地恢复组件的初始状态…”好的..在这种情况下,忽略所有关于删除组件或使用
CardLayout
的建议。最好的方法是保留对每个组件的引用,只需重置每个组件的内容或模型(显示在视图中)。顺便说一句-我将标题更改为”如何将所有组件刷新为其默认值或初始值?”因为实际目标似乎就是这样。
frame.invalidate();
frame.validate();
frame.repaint();