Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

399
Vistas
Aplicación java multiplataforma multitáctil (Windows, Mac y Linux (Ubuntu) (posiblemente Android))

Estoy tratando de agregar multi-touch a un proyecto Java multiplataforma existente. He mirado en 2 maneras. Había varias otras formas, pero no parecían ser multiplataforma o necesitaban un software especial.

  1. JavaFx: funciona con eventos de gestos/toques en Windows y osx, pero no funciona en Ubuntu 16.04.
  2. MT4J: parece estar descontinuado y/o no compatible.

Mis conclusiones para lo anterior podrían ser incorrectas y estoy dispuesto a intentarlas nuevamente si me dan una buena respuesta.

¿Hay alguna forma de lograr una aplicación Java multitáctil multiplataforma? Parece que es posible que deba escribir un código nativo y agregarlo a través de JNI, lo que parece mucho trabajo. ¿Alguna idea sobre esta línea de pensamiento?. Se agradece la retroalimentación, gracias.

Continuación 1.0:

Seguí investigando el uso de JavaFX en Linux principalmente porque el único inconveniente en este momento para usar JavaFX es el soporte multitáctil de Linux. Lo que descubrí es que JavaFx multitouch funciona en distribuciones de Linux que son para sistemas integrados (por ejemplo, Raspberry Pi, probablemente la mayoría para ser honesto). Lo que puedo deducir de esto es que si OpenJFX se puede compilar para el sistema integrado, entonces la versión integrada de OpenJFX usa los controladores de dispositivo directamente para obtener entrada (/dev/input/) en lugar de X11/GTK. Dado que las distribuciones de Linux para el escritorio usan X11/GTK para la entrada en el entorno de escritorio, JavaFx no puede obtener estos eventos debido a la falta de soporte.

No deseo usar un enlace pero aquí está

https://wiki.openjdk.java.net/display/OpenJFX/Building+the+OpenJFX+embedded+stack+para+Linux+desktop

El enlace anterior, me parece al menos, se trata de compilar una versión de OpenJFX para sistemas x86 (debería funcionar x64) que utiliza la forma de sistemas integrados para obtener la entrada del dispositivo. Puedo compilar esta versión, pero cuando la ejecuto, parece bloquearse el escritorio y, a veces, deja la aplicación Java activa. Cuando la aplicación Java se deja en ejecución, los eventos táctiles funcionan, pero este resultado final simplemente no es aceptable porque es impredecible y parece bloquear el administrador de escritorio (requiere reiniciar el escritorio después de esto).

Continuación 1.1:

Investigué el uso de TUIO pero ninguno de los programas de muestra funcionó. Dicen que necesita un dispositivo de habilitación TUIO que podría ser un estándar/protocolo especial que mis dispositivos no usan. Básicamente descargué la demostración de TUIO y la ejecuté en una pantalla táctil sin suerte.

También pensé en adjuntar xev a la ventana de mi aplicación java y transmitir los resultados a un archivo para que la aplicación java los lea y los analice en eventos java. Esto parece bastante complicado y no estoy seguro de si funcionaría. Si alguien expusiera la posibilidad de que esto funcione, puedo intentarlo. Pero en este punto parece mucho trabajo.

Continuación 1.2:

Encontré este https://bugs.openjdk.java.net/browse/JDK-8090954 y pensé que era interesante.

Publicó la solución a continuación.

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Recientemente ha habido muchos generadores de proyectos multiplataforma.

Reacciona nativo, cordova son algunos de esos

He usado React Native. Utiliza códigos javascript que se compilan de acuerdo con la plataforma.

React native tiene soporte para la programación de Gesture Control

 https://facebook.github.io/react-native/docs/gesture-responder-system.html

también puede conectar la parte de reacción del código con el código JAVA existente para la aplicación que ya ha escrito

 https://facebook.github.io/react-native/docs/integration-with-existing-apps.html
about 4 years ago · Santiago Trujillo Denunciar

0

La solución fue usar TUIO y lanzar nuestra propia biblioteca Multi-Touch. El truco fue iniciar TUIOClient y ejecutar un servidor TUIO. El TUIOClient escucha en un puerto determinado y el servidor TUIO reenvía los eventos del sistema operativo al puerto en el que escucha el cliente TUIO.

Usé el servidor mtdev2tuio (puente de salida) para Linux y lo ejecuté junto con un cliente TUIO.

Flujo de ejemplo:

1.) TUIOClient escuchando en el puerto x

2.) TUIOServer que reenvía eventos TUIO al puerto x desde los eventos del sistema operativo y

Linux:

1.) nuevo TUIOClient(3333)

2.) ./mtdev2tuio /dev/input/event5 osc.udp://127.0.0.1:3333

La solución no es la ideal, pero funciona y debería ser compatible con la tecnología multitáctil en cualquier dispositivo, siempre que se esté ejecutando un servidor TUIO (puente de salida). Otro inconveniente es que uno necesita capturar toques e interpretarlos en gestos. También tenga en cuenta que, dependiendo de cómo se desarrolle, dicta cómo lo usa en diferentes marcos. El nuestro deberá usarse en Swing/JavaFX.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda