Swing/DetectScrollToBottom のバックアップ(No.2)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/DetectScrollToBottom へ行く。
- title: JScrollBarが最後までスクロールしたことを確認する tags: [JScrollBar, JScrollPane, ChangeListener] author: aterai pubdate: 2013-03-04T10:01:01+09:00 description: JScrollBarが最後までスクロールしたかどうかを確認します。
概要
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として使用する