• category: swing folder: DetectScrollToBottom title: JScrollBarが最後までスクロールしたことを確認する tags: [JScrollBar, JScrollPane, ChangeListener] author: aterai pubdate: 2013-03-04T10:01:01+09:00 description: JScrollBarが最後までスクロールしたかどうかを確認します。 image: https://lh5.googleusercontent.com/-OoIPVjne_9M/UTPo6KgN_NI/AAAAAAAABlw/7miro8ywcyg/s800/DetectScrollToBottom.png

概要

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

解説

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

参考リンク

コメント