1

おそらく簡単な答えがある難しい質問があります(願っています)。

JGoodies Binding を使用して、スライダーをValueModelにバインドしています。よく働く。

チョコレートとキャラメルの購入をモデル化したい次の (不自然な) 状況があり、次の UI インジケーターで $1.00 を持っているとします。

  • C1 = 「キャラメル」スライダー = キャラメルキャンディーの予算 = 0 ~ 50 セント
  • C2 = 「チョコレート」スライダー = チョコレート菓子の予算 = 0 ~ 50 セント
  • C3 = 「変更」スライダー = 残りの残り

制約 C1+C2+C3 = 100 を強制したいので、次のようになります。

  • C1 を Δx だけ上下に調整すると、C3 は -Δx だけ調整されます
  • C2 を Δx だけ上下に調整すると、C3 は -Δx だけ調整されます
  • C3 を Δx で上下に調整すると、C1 は y=-floor(Δx/2) で調整され、C2 は -xy で調整されます

(すべての場合で調整の合計が正確に 0 になるように)

明らかなアプローチは、各 ValueModel にリスナーを追加して、それぞれの場合に特定のアクションを実行することです。しかし、次の 2 つのことを心配する必要があります。

  • 循環性 (C1 の変化が C3 の変化を引き起こし、それが C1 を変化させる)
  • 同期: 3 つの数値の合計が 100 になるように、完全なセット (C1、C2、C3) にアクセスする手段が必要です。

これどうやってするの?

4

0 に答える 0