Pantalla táctil de Windows 7 + Java Swing = Eventos de mouse retrasados

Estoy desarrollando una aplicación Swing en Java. El programa se ejecutará en máquinas dedicadas con pantalla táctil de Windows 7, y que yo sepa, este programa debería ser lo único que se ejecuta en ellas en condiciones normales de funcionamiento.

Me he dado cuenta de que la interfaz de la pantalla táctil de Windows 7 tiene esta cosa donde retendrá los eventos de mousedown. Debido al gesto de "hacer clic con el botón derecho", Windows 7 no enviará a la aplicación un evento de mouse down hasta que:

  • el usuario "retoca" (levanta el dedo de un toque, en cuyo punto se envían tanto hacia abajo como hacia arriba)
  • mueve su dedo (en ese punto el clic se convierte en un arrastre)
  • o el gesto del círculo del clic derecho agota el tiempo de espera (después de unos 5-6 segundos)

Trivialmente, esto significa que los botones no se ven presionados en la aplicación hasta que se envía el evento de mouse down (y nunca se dibuja deprimido con un toque rápido). Pero, recientemente, más en serio, esto significa que la funcionalidad que requiere presionar y mantener no puede ocurrir sin grandes cantidades de confusión para el usuario promedio.

En este punto del desarrollo es ahora demasiado tarde para dar la vuelta y empezar de cero con una de las muchas bibliotecas táctiles ofrecidos en otras preguntas. (Requieren rehacer toda la aplicación en su jerarquía de componentes, y eso simplemente no es factible. Además, las cosas codificadas para usar eventos del mouse tendrían que recodificarse usando eventos táctiles, y realmente no necesitamos multitáctil ... )

Sí, he intentado simplemente desactivar el gesto de hacer clic con el botón derecho. Desafortunadamente, hacerlo simplemente deshabilita el dibujo de un círculo que indica un gesto de clic derecho alrededor de su dedo y el disparo del siguiente clic derecho. NO elimina el problema subyacente: el evento de mouse down retrasado por hasta seis segundos .

Mi pregunta : ¿hay alguna manera de:

  • Idealmente, ¿indicarle a Windows que mi aplicación es una aplicación lista para tocar, por lo que envía eventos de inmediato (pero, supongo, todavía envía eventos de mouse en lugar de eventos táctiles)? Parece que el teclado virtual incorporado funciona correctamente. Solo quiero que mi aplicación Java haga lo mismo.
  • ¿Deshabilitar el retraso por completo en la computadora, pero aún así proporcionar la funcionalidad táctil básica?
  • Potencialmente, algo tan simple como esta pregunta, que parece estar preguntando sobre el mismo fenómeno, ¿pero en Java?
Respuesta 1

Hola, tengo un panel de cuadrícula y para uno de los nodos quiero que pueda ocupar toda la fila. pero parece que no puedo entender cómo usar GridPane.setColumnSpan (nodo, intervalo de columna); Heres mi código de cuadrícula ...

A partir de la versión 8, FreeBSD admite la opción de socket IP_BINDANY que la página del manual define como: Si la opción IP_BINDANY está habilitada en un SOCK_STREAM, SOCK_DGRAM o un socket SOCK_RAW, uno puede ...

Tengo la siguiente clase genérica: clase O <A, B> {O (A a) {} O (B b) {}} ¿Por qué obtengo el siguiente error cuando intento compilarlo? O (A) ya está definido en Or Or (B b) ^ ...

¿Hay alguna forma de agregar actividad SDK (Java) separada al proceso de creación en Qt 5.2 para Android? Tengo la aplicación Qt que he compilado para Android y quiero comenzar mi propia actividad SDK ...