2011-11-24 14 views
6

¿cómo puedo detectar un desplazamiento de 2 dedos en un trackpad de portátil en java? He estado buscando en google y aquí, pero no puedo encontrar nada en el desplazamiento usando un trackpad y mucho menos cómo escucharlo. cualquier ayuda sería muy apreciada. Gracias.Java trackpad 2-finger scroll listener

+0

El desplazamiento de dos dedos dependerá del hardware, ¿no? –

+3

¿Tiene que distinguir entre un desplazamiento del ratón y un desplazamiento del panel táctil? –

+0

@KevinD - es posible, solo me preguntaba que dado que Java es independiente de la plataforma, podría haber una solución – Joe

Respuesta

4

Si se trata de escuchar pergaminos de usuario, puede hacerlo agregando un MouseWheelListener a su control. Ver How to Write a Mouse-Wheel Listener para más información.

Si se trata de detectar eventos específicos del trackpad y no del mouse, no conozco ninguna característica de Java para implementar esto.

+0

esto es algo así como dos, quiero escuchar los rollos de usuario que se originan en un panel táctil, los enlaces que me proporcione serán útiles pero no funcionan para lo que necesito (Estoy en un Mac si eso hace alguna diferencia). – Joe

+0

Estaba buscando en Google cualquier problema entre MouseWheelListener y Mac OS y lo único que pude encontrar fue una confirmación de que MouseWheelListener era el camino a seguir: http://lists.apple.com/archives/java-dev/2008/Jun/ msg00169.html Lo siento si eso no funciona para usted, lo probaré en mi propia Mac si puedo encontrar la hora en casa. –

+0

bien ... tal vez es el IDE que estoy usando no puede, no registrará o no se desplaza. Estoy usando Processing y todos los oyentes funcionan, excepto MouseWheelListener. verifico en su foro para cualquier cosa. gracias por tu respuesta. – Joe

8

Hice este programa de ejemplo

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

se imprimirá si el desplazamiento es horizontal o vertical y la cantidad del desplazamiento fue cuando se desplaza dentro de la ventana abierta en un Mac con una pantalla táctil.

0

Finalmente una respuesta que escuchará el desplazamiento nativo. Mire mi pregunta y respuesta aquí: https://stackoverflow.com/a/31190973/155137

El proyecto también detecta gestos de desplazamiento y los informa muy bien. El desplazamiento es tan suave como una aplicación de cacao nativo.