2011-11-24 73 views
6

我該如何檢測在java中的筆記本觸控板上的2指滾動?我一直在搜索谷歌和這裏,但找不到滾動使用觸控板的任何東西,更別說如何聽它。任何幫助將不勝感激。謝謝。Java觸控板雙指滾動監聽器

+0

兩個手指滾動將硬件依賴不會嗎? –

+3

您是否必須區分鼠標滾動和觸控板滾動? –

+0

@KevinD - 這是可能的,我只是想知道,因爲Java獨立於平臺可能有一個解決方案 – Joe

回答

4

如果這是關於偵聽用戶滾動,您可以通過將MouseWheelListener添加到您的控件來完成。有關更多信息,請參見How to Write a Mouse-Wheel Listener

如果這是關於從觸控板而不是鼠標檢測特定事件,我不知道任何Java功能來實現此功能。

+0

這是有點兩者,我想聽用戶滾動,源自一個觸控板,你給的鏈接將派上用場,但它不適用於我所需要的(如果這有什麼區別,我在Mac上)。 – Joe

+0

我一直在搜索MouseWheelListener和Mac OS之間的任何問題,我唯一能找到的就是確認MouseWheelListener是要走的路線:http://lists.apple.com/archives/java-dev/2008/Jun/ msg00169.html對不起,如果這不適合你,我會嘗試在我自己的Mac上,如果我能在家中找到時間。 –

+0

好吧...也許這是我使用的IDE不能,不會或不會註冊卷軸。我正在使用Processing,並且除MouseWheelListener外,所有鼠標偵聽器都可以工作。我會檢查他們的論壇的任何東西。感謝您的回答。 – Joe

8

我做了這個示例程序

import java.awt.event.MouseWheelEvent; 
import java.awt.event.MouseWheelListener; 

import javax.swing.JFrame; 

public class ScrollTest { 

    public static void main(String[] args) { 
     JFrame frame = new JFrame(); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(200,200); 
     frame.addMouseWheelListener(new MouseWheelListener() { 

      @Override 
      public void mouseWheelMoved(MouseWheelEvent event) { 
       if (event.isShiftDown()) { 
        System.err.println("Horizontal " + event.getWheelRotation()); 
       } else { 
        System.err.println("Vertical " + event.getWheelRotation());      
       } 
      } 
     }); 
     frame.setVisible(true); 
    } 
} 

如果滾動爲水平或垂直,多少滾動是當你打開的窗口中滾動與觸摸板的Mac將打印。

0

最後一個答案,將聽本地滾動。看看我的問題和答案在這裏:https://stackoverflow.com/a/31190973/155137

該項目還檢測滾動手勢,並很好地報告。滾動與原生可可應用程序一樣流暢。