我想根据 JScrollPane
的高度更改其滚动速度。
这就是我当前创建 JScrollPane
的方式:
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.getVerticalScrollBar().setUnitIncrement(scrollSpeed);
问题在于setUnitIncrement
需要动态改变滚动速度。我不知道如何去做。
理想情况下,每当用户使用鼠标滚轮按钮或按下滚动条上的向上或向下滚动按钮之一时,我希望滚动滚动 Pane 高度的一半。
最佳答案
根据我的经验,滚动 Pane 的速度不会(也不应该)根据 Pane 的大小(例如, View 端口的列表中有多少元素等)动态变化。
也就是说,如果您需要,请尝试以下操作:
int getNewScrollSpeed( int scrollPaneHeight ){
// you'll have to play around with the multiplier value to make it work for you
// here I just chose 0.5 as an example
return (int) ( scrollPaneHeight * 0.5 );
}
然后,只要 scrollPane
或窗口(等)的高度发生变化,就这样调用此例程。
/* scrollPane height changes occur here */
scrollPane.getVerticalScrollBar().setUnitIncrement(
getNewScrollSpeed ( scrollPane.getHeight() );
关于java - 根据高度更改 JScrollPane 滚动速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27427302/