마우스 휠을 사용할 때 JScrollPane에서 스크롤 속도를 높이는 방법은 무엇입니까?
JScrollPane.setWheelScrollingEnabled(boolean)
마우스 휠 스크롤을 활성화 또는 비활성화 하는 방법 이 있습니다. 그래도 스크롤 속도를 조정할 수있는 방법이 있습니까? 제 생각에는 말도 안되게 느립니다. 창 크기에 관계없이 스크롤은 클릭당 약 3 픽셀입니다. 그 이상이되고 싶습니다.
어떤 아이디어?
이것을 시도 할 수 있습니다.
myJScrollPane.getVerticalScrollBar().setUnitIncrement(16);
한 가지 방법은 스크롤바의 단위 증분을 더 큰 숫자로 설정하는 것입니다.
scrollPane.getVerticalScrollBar().setUnitIncrement(20);
스크롤바 단위 amout에 관계없이 마우스 휠 스크롤 양을 설정하려면 마우스 휠 컨트롤러를 사용할 수 있습니다 .
ScrollBar의 단위 증분을 설정하여이를 수행 할 수 있습니다. 예를 참조하십시오.
yourScrollPane.getVerticalScrollBar().setUnitIncrement(16);
빠른 검색으로이 페이지 가 표시되었습니다 . 마우스 휠 사용자를 위해 JScrollPane 스크롤 속도를 높이는 방법 . 스크롤 증가분은 JScrollBar.setUnitIncrement
스크롤 창이 아니라 스크롤 막대 자체 ( ) 의 속성입니다 .
내 ScrollPane에서 32000 줄을 읽는 더 나은 방법을 찾으려고했습니다.
이 시도
scrollPane.getVerticalScrollBar().setUnitIncrement(100); scrollPane.getViewport().putClientProperty("EnableWindowBlit", Boolean.TRUE); scrollPane.getViewport().setScrollMode(JViewport.BACKINGSTORE_SCROLL_MODE);
이것을 사용할 수도 있습니다.
SwingUtil.setScrollUnitIncrement(yourScrollPane);
스크롤 속도를 높이는 내 솔루션 :
스크롤바의 매개 변수 추가 :
scrollPane.getVerticalScrollBar (). putClientProperty ( "JScrollBar.fastWheelScrolling", true);
휠 리스너를 구현합니다 (jViewport 내부 구성 요소에서) :
public void mouseWheelMoved(MouseWheelEvent e) { boolean isCtrl = (e.getModifiersEx() & MouseWheelEvent.CTRL_DOWN_MASK) != 0; boolean isShift = (e.getModifiersEx() & MouseWheelEvent.SHIFT_DOWN_MASK) != 0; MouseWheelEvent eventToDispatch = e; if (isCtrl || isShift) { int amountMulti = 1; int rotMulti = 1; if (isCtrl) { amountMulti *= 10; if (isShift) { amountMulti *= 5; rotMulti *= 2; } } int mod = e.getModifiers() & ~InputEvent.CTRL_MASK & ~InputEvent.SHIFT_MASK; int modEx = e.getModifiersEx() & ~MouseWheelEvent.CTRL_DOWN_MASK & ~MouseWheelEvent.SHIFT_DOWN_MASK; eventToDispatch = new MouseWheelEvent(this, e.getID(), e.getWhen() , mod | modEx, e.getX(), e.getY() , e.getXOnScreen(), e.getYOnScreen(), e.getClickCount(), e.isPopupTrigger() , e.getScrollType(), e.getScrollAmount()*amountMulti, e.getWheelRotation()*rotMulti , e.getPreciseWheelRotation()*amountMulti*rotMulti); } getParent().dispatchEvent(eventToDispatch); }
wheelRotation의 증가가 필요합니다. 그렇지 않으면 스크롤되는 줄의 수가 화면 크기로 제한됩니다.
'IT story' 카테고리의 다른 글
절대 경로가 필요한 PHP 파일을 포함하는 방법은 무엇입니까? (0) | 2020.09.02 |
---|---|
Python-목록을 함수 매개 변수로 사용 (0) | 2020.09.02 |
grep을 사용하여 줄 번호 만보고 (0) | 2020.09.02 |
io.sockets.emit과 broadcast의 차이점은 무엇입니까? (0) | 2020.09.02 |
angularjs의 조건부 ng-include (0) | 2020.09.02 |