我需要将帧重新加载到之前加载的状态,这意味着将所有帧组件返回到第一次放入帧时的状态。以下是我尝试过的问题How can I refresh or reload the JFrame?。
frame.invalidate();
frame.validate();
frame.repaint();
我还尝试使用frame.removeAll()删除框架的所有组件并重新加载但它也无法正常工作?
非常感谢任何帮助。感谢
答案 0 :(得分:2)
如何将所有组件刷新为默认值或初始值?
最好的方法是保留对每个组件的引用,然后重置每个组件的内容或模型(在视图中显示)。
答案 1 :(得分:1)
如果我说得对,例如你有一个文本字段,有人在其中输入文本,然后你想要重做它以及其他组件。
在这种情况下,没有内置解决方案。你必须手动完成。
我建议使用以下行为:第一次构建框架(创建组件,设置布局,配置操作等)时,将其放入单独的方法,例如, void builtFrame()
。然后你可以有一个方法,例如void revertFrame()
,它首先删除所有组件,然后调用builtFrame()
。如果你没有继承JFrame
而只是拥有一个字段,这甚至会变得更容易,因为你可以让方法产生初始状态框架,例如JFrame builtFrame()
(而不是void变体)