많은 현대 마우스 및 트랙 패드와 마찬가지로 랩탑에서도 수직 및 수평 스크롤을 지원합니다. 일단 익숙해지면 중독성이있는 기능입니다. 간단히 자바 애플리케이션이 트랙 패드/마우스 휠을 통한 수평 스크롤링을 지원하기를 원하지만 어디에서나 자바에서 검색이 불가능한 것처럼 보인다.자바 AWT ScrollPane에서 수평 마우스 휠 스크롤을 위해 내 트랙 패드를 사용하는 방법
난 정말 사람이 어떻게 든 잘못하고 있어요 있음을 말해하려면이 기능을 이미 요청 행동 : http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6440198
이 간단한 일을 할 수 없다는 사실 난 응용 프로그램에 대한 계약 위반이다 작업. 사실, 내가 상상할 수있는 앱이라면! Java 백엔드에 약간의 시간을 투자 했으므로이 겉으로보기에는 단순한 문제에 대한 해결책을 찾고 싶습니다.
질문이 동작을 구현하려면 어떻게해야합니까? 원시 OS 레벨 이벤트가 자바에 의해 나에게 노출 되더라도 처음부터이 코드를 작성해야합니까?
import java.awt.*;
public class ScrollExample extends Canvas {
public void paint(Graphics g) {
g.setColor(Color.green);
g.fillOval(0,0,400, 400);
}
public static void main(String[] args) {
ScrollExample b = new ScrollExample();
Frame f = new Frame ("Scroll Example");
ScrollPane scroller = new ScrollPane (ScrollPane.SCROLLBARS_ALWAYS);
scroller.add(b,"Center");
f.setPreferredSize(new Dimension(500,500));
f.add ("Center",scroller);
f.pack();
f.show();
}
}
스윙 예는 수평 및 수직 스크롤
import java.awt.*;
import javax.swing.*;
public class ScrollExample extends JPanel {
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.green);
g.fillOval(0,0,400, 400);
}
public static void main(String[] args) {
JFrame f = new JFrame ("Scroll Example");
ScrollExample p = new ScrollExample();
p.setPreferredSize(new Dimension(1000, 1000));
JScrollPane scroller = new JScrollPane(p,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scroller.getHorizontalScrollBar().setUnitIncrement(10);
scroller.getVerticalScrollBar().setUnitIncrement(10);
f.setPreferredSize(new Dimension(500,500));
f.add (scroller,BorderLayout.CENTER);
f.pack();
f.show();
}
}
감사합니다. 스윙은 AWT보다 천천히 작동하지만 휠의 기본 구성 일 수 있습니다. OS 컨트롤에 AWT를 사용하고 싶었지만 대신 스윙으로 전환 할 것입니다. 대부분의 UI가 내게 우선 적용됩니다. – blissapp
느린 스크롤에 대한 설명은 위의 편집을 참조하십시오. – camickr
업데이트 해 주셔서 감사합니다. Mouse Wheel Controller 클래스를 사용해 보았지만 내 하드웨어에서 스크롤이 느리고 잘 움직이지 않게되었습니다. 내 마지막 해결책은 ScrollBars 자체에서 setUnitIncrement() 메서드를 사용하는 것이 었습니다. 위 코드에 세부 사항을 추가했습니다. – blissapp