概要

JScrollBarJSliderの代わりとして使用します。

サンプルコード

int step   = 5;
int extent = 20;
int min    = 0;
int max    = extent * 10; //200
int value  = 50;
final JScrollBar scrollbar = new JScrollBar(
  JScrollBar.HORIZONTAL, value, extent, min, max + extent);
scrollbar.setUnitIncrement(step);
scrollbar.getModel().addChangeListener(new ChangeListener() {
  @Override public void stateChanged(ChangeEvent e) {
    BoundedRangeModel m = (BoundedRangeModel) e.getSource();
    spinner.setValue(m.getValue());
  }
});
final JSpinner spinner = new JSpinner(
  new SpinnerNumberModel(value, min, max, step));
//...
view all

解説

上記のサンプルでは、JScrollBarJSliderとして使用し、JSpinnerと連動させています。

  • JScrollBarに設定する最大値は、ノブ(extentはノブの幅)の右端ではなく左端になるように調整する必要がある
    • JSpinnerの最大値とは異なり、max+extentの値がJScrollBarの最大値となる
    • 垂直なら上端

参考リンク

コメント