您必须将滚动条的范围添加到您的计算中。我在下面的示例中将代码添加到您的代码中。
scrollPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() { @Override public void adjustmentValueChanged(AdjustmentEvent ae) { int extent = scrollPane.getVerticalScrollBar().getModel().getExtent(); System.out.println("Value: " + (scrollPane.getVerticalScrollBar().getValue()+extent) + " Max: " + scrollPane.getVerticalScrollBar().getMaximum()); }});
两种替代实现(部分对Kleopatra做出反应)
scrollPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() { @Override public void adjustmentValueChanged(AdjustmentEvent event) { JScrollBar scrollBar = (JScrollBar) event.getAdjustable(); int extent = scrollBar.getModel().getExtent(); System.out.println("1. Value: " + (scrollBar.getValue() + extent) + " Max: " + scrollBar.getMaximum()); }});
或通过模型
scrollPane.getVerticalScrollBar().getModel().addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent event) { BoundedRangeModel model = (BoundedRangeModel) event.getSource(); int extent = model.getExtent(); int maximum = model.getMaximum(); int value = model.getValue(); System.out.println("2. Value: " + (value + extent) + " Max: " + maximum); }});
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)