例如,如果component是复选框,则必须设置为false,或者它是文本字段,必须清除文本。我正在尝试编写一个方法来重置JPanel
中的所有组件。它必须像HTML表单中的重置函数一样工作。
如何将JComponent
重置为默认值?
答案 0 :(得分:4)
作为一名优秀的开发人员,您可能在视图和模型之间有一个很好的分离。模型更新后,这些更改将反映在视图中。
如果你有这样的结构,你可以简单地将模型重置为默认状态,然后在UI中显示重置状态(这意味着UI被重置为默认状态)
答案 1 :(得分:2)
Swing中没有重置功能。执行此操作的最佳方法是使用要重置的值创建方法,并在此处设置所有内容,例如:
public void resetWindow(){
checkBox.setSelected(false);
textField.setText("");
}
使用这种方式的优点是,只要您想要重置以及加载类时,您就可以重复使用此方法。
另一种方法是创建Panel的另一个实例并丢弃原始实例。这样一切都将处于开始状态。
答案 2 :(得分:2)
一种可能的解决方法是创建自定义重置功能。重新初始化面板(您的表单)。
例如
void reset(){
//recreate the form panel.
formPanel = new FormPanel();
}
创建自定义类FormPanel
以存储表单字段及其侦听器。
重新初始化面板组件会导致重新分配监听器的开销,如@Robin建议的那样。
答案 3 :(得分:1)
编写一个方法,在start时设置所有元素的初始值。然后,您可以重用此初始化方法来“重置”值。
答案 4 :(得分:0)
对于swing组件没有重置方法,你的代码应该处理它。