2011-11-24 27 views
6

Come posso rilevare uno scorrimento a 2 dita su un trackpad del laptop in java? Ho cercato su Google e qui ma non riesco a trovare nulla sullo scrolling usando un trackpad e tanto meno come ascoltarlo. Qualsiasi aiuto sarebbe molto apprezzato. Grazie.trackpad Java 2-finger scroll listener

+0

Lo scorrimento con due dita dipenderà dall'hardware vero? –

+3

Devi distinguere tra uno scroll del mouse e uno scroll trackpad? –

+0

@KevinD - è possibile, mi stavo chiedendo che dal momento che java è indipendente dalla piattaforma ci potrebbe essere una soluzione – Joe

risposta

4

Se si tratta di ascoltare gli scroll, è possibile farlo aggiungendo MouseWheelListener al proprio controllo. Vedere How to Write a Mouse-Wheel Listener per ulteriori informazioni.

Se si tratta di rilevare eventi specifici dal trackpad e non dal mouse, non sono a conoscenza di alcuna funzione Java per l'implementazione.

+0

questo è un pò tutti e due, voglio ascoltare per gli scroll degli utenti che provengono da un trackpad, i link che hai dato torneranno utili ma non funzionano per quello di cui ho bisogno (Sono su un Mac se questo fa alcuna differenza). – Joe

+0

Ero google per qualsiasi problema tra MouseWheelListener e Mac OS e l'unica cosa che ho trovato è stata la conferma che MouseWheelListener era la strada da percorrere: http://lists.apple.com/archives/java-dev/2008/Jun/ msg00169.html Scusa se non funziona per te, proverò sul mio Mac se riesco a trovare il tempo a casa. –

+0

okay ... forse l'IDE che sto usando non può, non registra o non registra le pergamene. sto usando Processing e tutti gli ascoltatori del mouse funzionano tranne MouseWheelListener. controllerò sul loro forum per qualsiasi cosa. grazie per la tua risposta. – Joe

8

ho fatto questo programma di esempio

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

Sarà stampata se lo scorrimento è orizzontale o verticale e quanto il rotolo è stato quando si scorre all'interno della finestra aperta su un Mac con un touchpad.

0

Finalmente una risposta che ascolterà lo scorrimento nativo. Date un'occhiata alla mia domanda e rispondete qui: https://stackoverflow.com/a/31190973/155137

Il progetto rileva anche i gesti di scorrimento e li segnala in modo corretto. Lo scorrimento è scorrevole come un'applicazione di cacao nativa.