我想根据其高度更改JScrollPane
的滚动速度。
这就是我目前正在创建JScrollPane
:
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.getVerticalScrollBar().setUnitIncrement(scrollSpeed);
问题是setUnitIncrement
需要动态更改滚动速度。我不知道我会怎么做。
理想情况下,只要用户使用鼠标滚轮按钮,或者按下滚动条上的向上或向下滚动按钮之一,我就想滚动滚动窗格高度的一半。
答案 0 :(得分:1)
根据我的经验,滚动滚动窗格的速度不会(也不应该)根据窗格的大小动态更改(例如,视图端口列表中有多少元素)什么的。)
那就是说,如果你需要,试试这个:
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() );