• title: JScrollBarが最後までスクロールしたことを確認する tags: [JScrollBar, JScrollPane, ChangeListener] author: aterai pubdate: 2013-03-04T10:01:01+09:00

概要

JScrollBarが最後までスクロールしたかどうかを確認します。

サンプルコード

JScrollPane scroll = new JScrollPane(c);
scroll.getVerticalScrollBar().getModel().addChangeListener(new ChangeListener() {
  @Override public void stateChanged(ChangeEvent e) {
    BoundedRangeModel m = (BoundedRangeModel)e.getSource();
    int extent  = m.getExtent();
    int maximum = m.getMaximum();
    int value   = m.getValue();
    if(value + extent >= maximum) {
      check.setEnabled(true);
    }
  }
});
View in GitHub: Java, Kotlin

解説

上記のサンプルでは、縦スクロールバーから取得したBoundedRangeModelChangeListenerを追加し、ノブの幅を加えた値が最大値になった時に最後までスクロールしたと判断して、JCheckBoxを有効に設定しています。

参考リンク

コメント