0

テストできる項目が複数ある Java アプリを作成しています。ただし、ハードウェアの制限により、4 つのデバイスしか同時にテストできません。私は疑問に思っていました-一般的に-Javaで選択されたアイテムの数を4つだけに制限するにはどうすればよいですか(どのアイテムが選択されても)。私は Java ドキュメントを読んでいますが、それに対する答えが見つからないようです。

私は Java にかなり慣れていないので、私の無知を許してください。どこで/どのように開始するかについての手がかりが必要です。

Java で選択するチェック ボックスの数を制限するにはどうすればよいですか?

4

3 に答える 3

5

Swing を使用している場合は、まず JCheckBox[] の配列を作成し、チェックボックスを入力します。次に、チェックされたチェックボックスの量で ChangeListener とグローバル変数を作成します。このリスナーをすべてのチェックボックスに追加します。ChangeListener のstateChanged()メソッドで、グローバル変数を 1 ずつ増減します。変数が 4 に達した場合は、チェックされているものを除いて setEnabled(false) ですべてのチェックボックスを無効にします。変数を 4 から 3 に減らす場合は、それらを有効に設定します。

これは ChangeListener の良い例です: http://www.java2s.com/Code/Java/Event/CheckBoxItemListener.htm

于 2012-10-18T14:45:01.807 に答える
3

起動したデバイスの数を保持できるグローバル変数を作成します。

チェック ボックスがクリックされると、そのイベント ハンドラーで、チェックされている場合は変数に加算し、チェックされていない場合は減算します。

もちろん、値が 5 (0 - 4) 未満であることを追加する前に、別の値をチェックできるようにする前にチェックします。

于 2012-10-18T14:38:31.633 に答える
1

すべてのチェックボックスを追跡します。リスナーの stateChanged() に次のチェックへの呼び出しを追加します。

  • すべてのチェックボックスの状態をループしてクエリし、チェックされている数を数えます。
  • チェックボックスの数が 4 以上の場合、すべてのチェックボックスを再度ループし、チェックされていないすべてのチェックボックスを無効にします。
  • チェックボックスの数が 4 未満の場合は、すべてのチェックボックスを有効にします。

チェックボックスの数でグローバル カウントをインクリメント/デクリメントすると、効率が若干向上するように見えるかもしれませんが、UI を処理する場合のゲインは無視できます。まれなケースやバグが状態情報を単にポーリングするのではなく追跡しようとするのを避けるために、防御的にコーディングする方が良いと思います。

防御的プログラミングの場合、UI からの入力も検証して、チェック ボックスの数が 4 以下であることを確認します。

于 2012-10-18T14:41:44.907 に答える