Come sviluppare applicazioni multi-touch in Java?
-
21-08-2019 - |
Domanda
Anticipando il giorno in cui le interfacce multi-touch diventano più pervasiva, ci sono le librerie in Java che possono essere utilizzati per lo sviluppo di applicazioni touch? Sto cercando per le interfacce simili a MouseListener / MouseMotionListener / MouseWheelListener.
Soluzione
Il progetto MT4j ha tutto il necessario per sviluppare applicazioni multitouch in Java. Tutti i ben noti gesti multitouch sono già costruiti in ed è possibile accedervi come semplice come l'ascolto di eventi del mouse (per esempio: component.addGestureListener (..)). È inoltre dotato di accelerazione hardware grafico scena, simile a JavaFX. È anche possibile simulare l'input multitouch collegando uno o più topi alla vostra macchina. Check it out a http://www.mt4j.org
Altri suggerimenti
Sparsh è ancora nei miei preferiti dall'ultima volta che stavo indagando java multitouch soluzioni.
Anche se non è così semplice come il tipico ascoltatore del mouse o fare clic ascoltatore, fornisce ancora un'interfaccia ragionevole.
È necessario la classe di ascolto per implementare sparshui.client.Client
, che richiede la definizione processEvent
metodo.
public void processEvent(int groupID, Event event) {
if(event instanceof TouchEvent) {
TouchEvent e = (TouchEvent)event;
if(e.getState() == TouchState.BIRTH) {
//do initial touch stuff
} else if(e.getState() == TouchState.MOVE) {
//do dragging stuff
}
}
else if(event instanceof DragEvent) {
DragEvent e = (DragEvent)event;
//do DragEvent specific stuff
} else if(event instanceof RotateEvent) {
RotateEvent e = (RotateEvent)event;
//do RotateEvent specific stuff
} else if(event instanceof ZoomEvent) {
ZoomEvent e = (ZoomEvent)event;
//do ZoomEvent specific stuff
}
//several other gesture types....
}
Dopo di che, è necessario avviare il server riconoscimento dei gesti, passando nel componente
new ServerConnection("localhost", objectImplementingClientInterface);
Guardando gli esempi di codice sul sito dovrebbe darvi una buona idea del quadro.
Che ne dite di questo: http://kenai.com/projects/macmultitouch
sto lavorando in primo luogo di elaborazione e progettazione di mia interfaccia utente da zero. Sono stato alla ricerca di una soluzione che non prescrivere un framework di interfaccia utente, che sia MT4J e JavaFX sembrano fare. Inoltre, MT4J sembra essere abbandonata.
Questo appare come una soluzione promettente, almeno per Windows, ma io sono sicuro se in realtà è ancora uscito: http://wiki.gestureworks.com/index.php/GestureWorksCore:Gestureworks_Core_Tutorials
Questo è specifico per la lavorazione, multipiattaforma, open-source e attiva: https://github.com/vialab/SMT
MT4J non funziona con Windows 8.
Se l'applicatin è solo per un utente, si può usare JavaFX . Ci sono diversi ascoltatore per gli eventi di tocco. Ma non è possibile elaborare due gesti, allo stesso tempo, perché tutti i punti di contatto si fonderanno per un solo gesto. Per grandi schermi multi touch è un disadvange. Per gli schermi normali, dove è solo utente il suo ok.
Ma c'è anche GestureWorks . Ci si può definire nuovo gesto o utilizzare il gesto predefinito. I gesti sono definite in un file XML (chiamato GML). Qualsiasi oggetto può gestire proprio lì gesti. Ma è necessario implementare la hitTest e l'assegnazione punto manualmente. Ma c'è un greate esercitazione .
Un altro biblioteca, che io non testato, ist il Multi Touch SDK da PQ Lab .