Anticipant le jour où les interfaces multi-touch deviennent plus envahissantes, existe-t-il des bibliothèques en Java qui peuvent être utilisées pour développer des applications tactiles? Je suis à la recherche d'interfaces similaires à MouseListener/MouseMotionListener/MouseWheelListener.Comment développer des applications multi-touch en Java?
Répondre
Le projet MT4j a tout ce dont vous avez besoin pour développer des applications multitouch en java. Tous les gestes multitouch bien connus sont déjà intégrés et peuvent être consultés en tant que simples en écoutant des événements de la souris (par exemple: component.addGestureListener (..)). Il dispose également d'un graphe de scène accéléré par le matériel, similaire à JavaFX. Vous pouvez même simuler une entrée multitouch en connectant une ou plusieurs souris à votre machine. Check it out à http://www.mt4j.org
Sparsh est toujours dans mes marque-pages depuis la dernière fois que j'étudiais des solutions Java multitouch.
Bien que n'étant pas aussi simple que l'écouteur de souris typique ou l'écouteur de clic, il fournit toujours une interface raisonnable.
Vous avez besoin de votre classe d'écoute pour implémenter sparshui.client.Client
, ce qui nécessite la définition de la méthode .
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....
}
Après cela, vous devez démarrer le serveur de reconnaissance gestuelle, en passant dans votre composant
new ServerConnection("localhost", objectImplementingClientInterface);
En regardant les exemples de code sur le site devrait vous donner une assez bonne idée du cadre.
Ouch ... vraiment, vous devez 'instanceOf' les événements? Ils ne fournissent pas de callback comme, processDragEvent, processZoomEvent, etc? –
Pour autant que je sache, ils ne prennent en charge qu'un appel générique "processEvent" car vous pouvez ajouter des mouvements personnalisés qui ne sont pas natifs du framework. Cela fournit cette extensibilité sans avoir à modifier le code du framework. –
Que diriez-vous ceci: http://kenai.com/projects/macmultitouch
Salut Wayne, s'il vous plait, n'utilisez pas les réponses de liens uniquement car les liens hors site peuvent mourir et devenir inutiles. –
Je travaille principalement dans le traitement et la conception de mon interface utilisateur à partir de zéro. J'ai cherché une solution qui ne prescrit pas un cadre d'interface utilisateur que MT4J et JavaFX semblent faire. De plus, MT4J semble être abandonné.
Cela ressemble à une solution prometteuse au moins pour Windows, mais je ne suis pas sûr si elle est effectivement encore sorti: http://wiki.gestureworks.com/index.php/GestureWorksCore:Gestureworks_Core_Tutorials
Ceci est spécifiquement pour le traitement, multi-plateforme, open-source et active: https://github.com/vialab/SMT
MT4J ne fonctionne pas avec Windows 8.
Si le applicatin est seulement pour un utilisateur, vous pouvez utiliser JavaFX. Il y a différents écouteurs pour les événements tactiles. Mais il n'est pas possible de traiter deux gestes en même temps, car tous les points de contact fusionneront en un seul geste. Pour les grands écrans multi-touch, c'est un inconvénient. Pour les écrans normaux, où un seul utilisateur est ok. Il existe également GestureWorks . Là, vous pouvez définir un nouveau geste ou utiliser le geste prédéfini. Les gestes sont définis dans un fichier XML (appelé GML). Tout objet peut gérer ses propres gestes. Mais vous devez implémenter le hitTest et l'affectation des points manuellement. Mais il y a un greate tutorial. Une autre bibliothèque, que je n'ai pas testée, est la Multi Touch SDK by PQ Lab.
- 1. Comment développer des applications Windows
- 2. Développer des applications de trading
- 3. développer des sites avec des applications Flex
- 4. Modèles pour développer des applications WCF
- 5. BlackBerry - est-il possible de développer des applications de marque?
- 6. Multitouch question
- 7. Détection multitouch
- 8. Puis-je développer une application iPhone en utilisant java?
- 9. Quelqu'un est-il développer des applications facebook sur Grails
- 10. Plugin IDE pour développer des applications réseau multithread
- 11. outils pour développer des applications Silverlight WPF ou
- 12. Comment développer des applications pour Symbian OS de téléphones mobiles comme Nokia
- 13. Quelles applications dois-je télécharger pour commencer à développer des applications à l'aide du framework Spring?
- 14. Comment implémenter des langages multiples dans des applications Java/Swing?
- 15. Comment développer des pages Web pour l'iPhone qui ressemblent à des applications natives?
- 16. Que dois-je télécharger pour commencer à développer des applications en utilisant le framework Spring?
- 17. Est-il possible de développer des applications DirectX 9 en utilisant le dernier SDK DirectX?
- 18. Développer des fonctionnalités ou des aspects visuels d'une interface - que développer en premier?
- 19. Comment activer l'anti-aliasing dans des applications Java arbitraires?
- 20. Comment écrire des applications Facebook en utilisant Django?
- 21. Portabilité des applications Java Swing vers OSX
- 22. Comment développer rapidement des applications Windows qui ne dépendent pas d'autres runtimes?
- 23. Développer un format d'échange (fichier) pour Java
- 24. Portage des applications Java sur la plateforme Android
- 25. Tester Windows 7 multitouch sur une machine de développement sans multitouch?
- 26. Des outils pour ignorer le comportement réseau des applications Java?
- 27. Comment développer des méthodes complexes avec TDD
- 28. Architecture logicielle pour développer des applications qui s'exécutent sur plusieurs plates-formes
- 29. communication entre applications (.NET + java)
- 30. Comment intégrer des applications natives avec eclipse?
Est-ce que MT4j permet au développeur de créer de nouveaux gestes multitouch, en plus de ceux intégrés? Pas immédiatement apparent de la liste des fonctionnalités MT4j sur la page Web. –
Oui, MT4j permet certainement de créer de nouveaux gestes multitouch car c'est une exigence très importante pour les applications multitouch. Tout ce que vous avez à faire est de créer un nouveau processeur d'entrée et de l'enregistrer avec un composant. Des tutoriels montrant comment faire cela seront bientôt disponibles. Jusque-là, vous pouvez regarder le code source des gestes existants. –
MT4j a l'air génial - malheureusement c'est la GPL et donc pas adapté pour les applications commerciales. – hendrik