2

以下の範囲で動くjsliderを作成しようとしています。

[-x,-1)[1,x]

つまり、値 -1 と 0 を JSlider の有効な値にしたくありません。ただし、x から -1 までの値は許可する必要があり、1 から x までは許可する必要があります。

私はハッキーなコードを書かないようにしようとしているので、別の (連続した) 範囲から値を取得し、それを必要な範囲に変換するだけの関数を UI コードに書きたくありません。それは述べています。

理想的には、呼び出しslider.getValue()て、戻り値が上記の範囲内になることを知ることができるはずです。

4

2 に答える 2

2

この値の調整は、おそらくオーバーライドされたメソッド内で自分で行う必要があると思いますsetValue()か?

このコードを試してください:

    int x = 10;
    @Override
    public void setValue(int n)
    {
        if((n >= -x && n < -1)|| (n =< x && n >= 1))
        {   
            super.setValue(n);
            System.out.println("OI in setValue");
        }
    }
于 2011-05-28T10:22:58.880 に答える
2

スライダーの値は、親指の現在の位置とスライダーの幅の比率(ピクセル単位)です。IIUCには、、、の3つの範囲があるため[-x,-1)、 2つの親指が必要に[-1,1)なり[1,x]ます。JXMultiThumbSliderをサポートするを見るかもしれませんMultiThumbModel

補遺:関連するユースケースとして、カスタムSwingコンポーネントの作成方法から始めました。面倒ですが、よりクリーンな結果が得られる可能性があります。

于 2011-05-28T19:36:49.157 に答える