3

の値を設定するにはどうすればよいJSliderですか?一定ではない間隔で、特定の値を割り当てたいと思います。助けてください

4

2 に答える 2

4

コンストラクターを使用して、スライダーの最小値と最大値を設定できます。

JSlider mySlider = new Slider(10, 30); // min value of slider, maxValue of slider

私の知る限り、スライダーの範囲は均一で変更できません。(ただし、これについてはわかりません。)できることは、均一な値を使用して、必要な間隔にマップすることです。たとえば、スライダーを10から10000に変更したいが、対数目盛であるとします。

最小値を1(10の対数基数10 = 1)に設定し、最大値を4(10,000の対数基数10)= 4に設定します。getValue()メソッドを使用してスライダーの現在の値を取得し、で10をその累乗にしMath.pow()ます。

または、スライダーの位置に対応する値を、計算できない場合は必要な値とともに配列に格納することもできます。

を使用して、setLabelTable(Dictionary labels)カスタムラベルを設定できます。このページには、カスタムラベルの作成方法に関する情報があります。ここで指摘したように、実際にはインターフェイスHashTableを実装するクラスを使用しDictionaryます。

乾杯!

于 2011-07-14T18:25:37.133 に答える
4

BoundedRangeModel このモデルを変更できるため、SJliderも同期できます。

    BoundedRangeModel bRangeModel = 
      new DefaultBoundedRangeModel(initValue, extent, min, max);
    JSlider s = new JSlider(bRangeModel);

ただし、ステップサイズはモデルにバインドされていません。小さな目盛りの間隔でステップを設定できます(私はそれがあなたが望むものだと思います)

    slider.setMinorTickSpacing(5); // step / interavl
    slider.setSnapToTicks(true); // should be activated for custom tick space


または、JSpinnerを使用することもできます。

    SpinnerModel spinnerModel = 
      new SpinnerNumberModel(value, minimum, maximum, stepSize);
    JSpinner spinner = new JSpinner(spinnerModel);

    // changing the stepSize at anytime
    sm.setStepSize(newValue);
于 2011-07-14T18:51:51.937 に答える