1

JComponent最小の例として、相互にやり取りする必要がある3 つの Swing要素 ( aJSliderと two ) がありJTextFieldsます。はJSlider0 から 50 まであり、JTextField の 1 つは JSlider の値をJTextField示し、2 番目は合計値のパーセンテージを示します (つまり、JSliderの 2 は 2 番目の 4% を更新しJTextFieldます)。

3 つの要素のいずれかを変更すると、他のすべての要素が更新されます。したがって、の は のイベントをトリガーする必要がChangeEventあります。ただし、 which のトリガーは、この場合、 の値の変更をトリガーする必要があります。JSlidersetText()JTextFieldssetText()ActionEventsTextFieldsJSlider

/booleanを処理する前にブール値がチェックされる「更新」フラグを使用して、この問題に取り組んできました。しかし、 /ループを防ぐためのプログラムまたはよりクリーンな方法があるかどうかを知りたいです。ActionEventChangeEventActionEventChangeEvent

洞察をいただければ幸いです。


編集

パーセンテージ値がスライダー値と正確に一致しない (つまり、丸め誤差がある) ヒストグラム情報でこれを機能させようとしています。提案されたSpinSlidersは、setText()メソッドが最終値で「解決」できることに依存しています。つまり、 に入力された値setText()が既に保持されているテキストと同じである場合、 は起動されずActionEvent、効果的にループが終了します。丸めがオフの場合、setValue()JSliderと のsetText()は、JTextField丸めによって「平衡」状態に達することはありません。問題が簡潔に説明されていることを願っています。

4

1 に答える 1