2

例如,如果组件是一个复选框,它必须设置为 false,或者它是一个文本字段,它必须清除文本。我正在尝试编写一种方法来重置JPanel. 它必须像 HTML 表单中的重置功能一样工作。

如何将a重置JComponent为默认值?

4

5 回答 5

4

作为一名优秀的开发人员,您可能在视图和模型之间有一个很好的分离。当模型更新时,这些更改会反映在视图中。

如果你有这样的结构,你可以简单地将你的模型重置为默认状态,然后重置后的状态在 UI 中变得可见(这意味着 UI 被重置为其默认状态)

于 2012-12-10T12:14:13.923 回答
2

Swing 中没有复位功能。最好的方法是创建一个方法,其中包含要重置的值并在此处设置所有内容,例如:

public void resetWindow(){
    checkBox.setSelected(false);
    textField.setText("");
}

使用这种方式的优点是您可以在想要重置时以及在加载类时重用此方法。

另一种方法是创建 Panel 的另一个实例并丢弃原始实例。这样,一切都将处于启动状态。

于 2012-12-10T11:39:04.323 回答
2

一种可能的解决方法是创建自定义重置功能。重新初始化面板(您的表单)。

例如

void reset(){
    //recreate the form panel.
    formPanel = new FormPanel(); 
}

创建一个自定义类FormPanel来存储表单字段及其侦听器。

重新初始化面板组件将导致按照@Robin 的建议重新分配侦听器的开销。

于 2012-12-10T11:41:25.660 回答
1

编写一个方法,在开始时设置所有元素的初始值。然后你可以重用这个初始化方法来“重置”这些值。

于 2012-12-10T11:37:54.487 回答
0

摆动组件没有重置类型的方法,您的代码应该处理它。

于 2012-12-10T11:39:46.290 回答