2011-11-24 1 views
6

Javaのラップトップトラックパッドで2本指のスクロールを検出するにはどうすればよいですか?私はGoogleとここで検索してきましたが、トラックパッドを使ってスクロールしても何も見つけられませんでした。どんな助けでも大歓迎です。ありがとう。Javaトラックパッド2指のスクロールリスナー

+0

2本の指のスクロールはハードウェアに依存しませんか? –

+3

マウスのスクロールとトラックパッドのスクロールを区別する必要はありますか? –

+0

@KevinD - それは可能です、私はちょうどJavaがプラットフォームに依存しないので、解決している可能性があると思っていた – Joe

答えて

4

ユーザースクロールをリッスンする場合は、コントロールにMouseWheelListenerを追加してください。詳細については、How to Write a Mouse-Wheel Listenerを参照してください。

これは、マウスではなくトラックパッドからの特定のイベントを検出する場合、これを実装するためのJava機能は知られていません。

+0

これはどちらかというと、トラックパッドから発信されたユーザーのスクロールを聞きたいのですが、リンクは便利ですが、 (私はそれが何か違いがあれば、マックにいる)。 – Joe

+0

私はMouseWheelListenerとMac OSの間の問題を捜していましたが、唯一見つけられるのは、MouseWheelListenerが行く方法であるという確認でした:http://lists.apple.com/archives/java-dev/2008/Jun/ msg00169.html申し訳ありませんが、それがあなたのために動作しない場合、私は自宅で時間を見つけることができます私は自分のMacで試してみます。 –

+0

大丈夫です...おそらくそれは私が使用しているIDEであり、スクロールを登録できない、または登録しないということです。私はProcessingを使用していて、MouseWheelListener以外のすべてのマウスリスナーが機能します。彼らのフォーラムで何かを確認します。ご回答有難うございます。 – Joe

8

私は、スクロールが水平または垂直とどのくらいあなたはタッチパッドを搭載したMacで開いたウィンドウ内でスクロールすると、スクロールがしている場合、それが印刷されます。このサンプルプログラム

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); 
    } 
} 

を作りました。

0

最後にネイティブスクロールを聞く回答。私の質問と回答をここで見てください:https://stackoverflow.com/a/31190973/155137

このプロジェクトでは、スクロールジェスチャーも検出し、うまくレポートします。スクロールはネイティブのココアアプリケーションほどスムーズです。

関連する問題