JScrollBarが最後までスクロールしたことを確認する
Total: 3319
, Today: 2
, Yesterday: 1
Posted by aterai at
Last-modified:
概要
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 all解説
上記のサンプルでは、縦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として使用する