Swing/DetectScrollToBottom のバックアップ(No.7)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/DetectScrollToBottom へ行く。
- category: swing
folder: DetectScrollToBottom
title: JScrollBarが最後までスクロールしたことを確認する
tags: [JScrollBar, JScrollPane, ChangeListener]
author: aterai
pubdate: 2013-03-04T10:01:01+09:00
description: JScrollBarが最後までスクロールしたかどうかを確認します。
image:
hreflang:
href: https://java-swing-tips.blogspot.com/2017/07/detects-that-it-has-reached-bottom-of.html lang: en
概要
JScrollBar
が最後までスクロールしたかどうかを確認します。
Screenshot
Advertisement
サンプルコード
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
から取得したBoundedRangeModel
にChangeListener
を追加し、ノブの幅を加えた値が最大値になった時に最後までスクロールしたと判断して、JCheckBox
を有効に設定しています。
参考リンク
- java - How to know if a JScrollBar has reached the bottom of the JScrollPane? - Stack Overflow
JScrollBar
にAdjustmentListener
を設定する方法と、BoundedRangeModel
にChangeListener
を設定する方法が回答されている
- JScrollBarをJSliderとして使用する