2014-12-11 3 views
0

높이를 기준으로 JScrollPane의 스크롤 속도를 변경하고 싶습니다. 나는 현재 만드는 오전 방법높이를 기준으로 JScrollPane 스크롤 속도를 변경하십시오.

이것은 내 JScrollPane :

JScrollPane scrollPane = new JScrollPane(table); 
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); 
scrollPane.getVerticalScrollBar().setUnitIncrement(scrollSpeed); 

문제는 setUnitIncrement 동적 스크롤 속도를 변경해야한다는 것입니다. 나는 그 일을 어떻게 할 것인지 알지 못한다.

이상적으로, 사용자가 마우스 휠 단추를 사용하거나 스크롤 막대의 위 또는 아래로 스크롤 단추 중 하나를 누를 때마다 스크롤 창 높이의 절반만큼 스크롤하고 싶습니다. 내 경험에

답변

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()); 
관련 문제