0

JSlider に基づくカスタム コンポーネントがあります。それは基本的に同じものですが、DualSlider と名付けた親指が 2 つあるだけです。

スライダーの最大値を時々変更する必要があるので、変更するたびに updateUI を呼び出してこれを反映させます。

public void updateUI() {
    this.setUI(new DualSliderUI(this));
    this.updateLabelUIs();
}

ただし、使用しようとしたときの DualSlider の最大値は、プログラムの使用中に何度変更しようとしても、元の値に設定されたままです。いくつかの println ステートメントで、新しい最大値を持つスライダーで新しい DualSliderUI が作成されていることを確認できますが、何らかの理由で、スライダーを初期化した元の DualSliderUI が使用されています。

これを回避するために、プロパティを更新するときに他に確認しなければならないことは何ですか?

4

1 に答える 1

1

1) 使用する理由がわかりません。これを一度updateUI()だけ行う必要があります。これを作成した場合にのみJSlider行います。繰り返し行うことはありません。

2)あなたはBoundedRangeModelを見ました、多分

于 2012-02-24T07:24:32.667 に答える