2

たとえば、コンポーネントがチェックボックスの場合は false に設定するか、テキストフィールドの場合はテキストをクリアする必要があります。内のすべてのコンポーネントをリセットするメソッドを作成しようとしていJPanelます。HTML フォームのリセット機能のように機能する必要があります。

JComponentaをデフォルト値にリセットする方法は?

4

5 に答える 5

4

優れた開発者であれば、ビューとモデルを適切に分離しているはずです。モデルが更新されると、それらの変更がビューに反映されます。

このような構造がある場合は、モデルをデフォルトの状態にリセットするだけで、そのリセットされた状態が UI に表示されます (つまり、UI がデフォルトの状態にリセットされます)。

于 2012-12-10T12:14:13.923 に答える
2

Swingにはリセット機能はありません。これを行う最良の方法は、リセットする値を使用してメソッドを作成し、ここですべてを設定することです。例:

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

この方法を使用する利点は、リセットするときやクラスのロード時に、このメソッドを再利用できることです。

もう1つの方法は、Panelの別のインスタンスを作成し、元のインスタンスを破棄することです。そうすれば、すべてが開始状態になります。

于 2012-12-10T11:39:04.323 に答える
2

考えられる回避策の1つは、カスタムリセット関数を作成することです。パネル(フォーム)を再初期化します。

例えば

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 に答える