たとえば、コンポーネントがチェックボックスの場合は false に設定するか、テキストフィールドの場合はテキストをクリアする必要があります。内のすべてのコンポーネントをリセットするメソッドを作成しようとしていJPanel
ます。HTML フォームのリセット機能のように機能する必要があります。
JComponent
aをデフォルト値にリセットする方法は?
優れた開発者であれば、ビューとモデルを適切に分離しているはずです。モデルが更新されると、それらの変更がビューに反映されます。
このような構造がある場合は、モデルをデフォルトの状態にリセットするだけで、そのリセットされた状態が UI に表示されます (つまり、UI がデフォルトの状態にリセットされます)。
Swingにはリセット機能はありません。これを行う最良の方法は、リセットする値を使用してメソッドを作成し、ここですべてを設定することです。例:
public void resetWindow(){
checkBox.setSelected(false);
textField.setText("");
}
この方法を使用する利点は、リセットするときやクラスのロード時に、このメソッドを再利用できることです。
もう1つの方法は、Panelの別のインスタンスを作成し、元のインスタンスを破棄することです。そうすれば、すべてが開始状態になります。
考えられる回避策の1つは、カスタムリセット関数を作成することです。パネル(フォーム)を再初期化します。
例えば
void reset(){
//recreate the form panel.
formPanel = new FormPanel();
}
FormPanel
フォームフィールドとそのリスナーを格納するカスタムクラスを作成します。
パネルコンポーネントを再初期化すると、@ Robinが提案したように、リスナーを再割り当てするオーバーヘッドが発生します。
開始時にすべての要素の初期値を設定するメソッドを記述します。次に、この初期化メソッドを再利用して、値を「リセット」できます。
スイングコンポーネントにはリセットのようなメソッドはありません。コードで処理する必要があります。