Antycypacja dnia, w którym interfejsy multi-touch stają się bardziej wszechobecne, czy istnieją biblioteki w Javie, które można wykorzystać do tworzenia aplikacji dotykowych? Szukam interfejsów podobnych do MouseListener/MouseMotionListener/MouseWheelListener.Jak opracować aplikacje multi-touch w Javie?
Odpowiedz
projektu MT4j ma wszystko, czego potrzeba, aby rozwijać multitouch aplikacji w Javie. Wszystkie dobrze znane gesty multitouch są już wbudowane i mogą być dostępne jako proste jako nasłuchiwanie zdarzeń myszy (na przykład: component.addGestureListener (..)). Posiada również graficzny wykres przyspieszenia sprzętowego, podobny do JavaFX. Można nawet symulować wprowadzanie wielodotykowe przez podłączenie do myszy więcej myszy. Sprawdź to na http://www.mt4j.org
Sparsh jest wciąż w moich zakładkach od czasu ostatniego badania rozwiązań wielodotykowych java.
Chociaż nie jest tak prosty jak typowy słuchacz myszy lub słuchacz kliknięć, nadal zapewnia rozsądny interfejs.
Potrzebujesz swojej klasy nasłuchu do implementacji sparshui.client.Client
, która wymaga definicji metody processEvent
.
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....
}
Po tym, trzeba uruchomić serwer rozpoznawanie gestów, przechodząc w składniku
new ServerConnection("localhost", objectImplementingClientInterface);
Patrząc na przykłady kodu na stronie powinno dać całkiem dobry pomysł ram.
Ouch ... naprawdę, musisz "instancjiOf" wydarzeń? Nie zapewniają one wywołań zwrotnych, takich jak processDragEvent, processZoomEvent itp.? –
O ile mi wiadomo, obsługują tylko ogólne wywołanie "processEvent", ponieważ możesz chcieć dodać niestandardowe gesty, które nie są natywne dla architektury. Zapewnia to rozszerzalność bez konieczności modyfikacji kodu struktury. –
Jak o tym: http://kenai.com/projects/macmultitouch
Witaj Wayne, powstrzymaj się od używania odpowiedzi z linkami, ponieważ linki poza witryną mogą umrzeć i stać się bezużyteczne. –
Pracuję przede wszystkim nad przetwarzaniem i projektowaniem mojego interfejsu użytkownika od podstaw. Szukałem rozwiązania, które nie zalecałoby ram interfejsu użytkownika, które wydają się robić zarówno MT4J, jak i JavaFX. Ponadto wydaje się, że MT4J jest porzucony.
To wygląda obiecująco rozwiązanie przynajmniej dla Windows, ale jestem pewien, czy to faktycznie wydany jeszcze: http://wiki.gestureworks.com/index.php/GestureWorksCore:Gestureworks_Core_Tutorials
Jest specjalnie do przetwarzania, cross-platform, open-source i aktywny: https://github.com/vialab/SMT
MT4J nie działa z Windows 8.
Jeśli applicatin jest tylko dla jednego użytkownika, można użyć JavaFX. Istnieją różne słuchacze dla zdarzeń dotykowych. Ale nie jest możliwe przetwarzanie dwóch gestów w tym samym czasie, ponieważ wszystkie punkty dotykowe scalą się w jeden gest. W przypadku ekranów wielodotykowych jest to niekorzystne. W przypadku normalnych ekranów, gdzie jest tylko jeden użytkownik, jest w porządku.
Ale istnieje również GestureWorks. Tam możesz zdefiniować nowy gest lub użyć predefiniowanego gestu. Gesty są zdefiniowane w pliku XML (zwanym GML). Każdy obiekt może obsłużyć tam własne gesty. Ale musisz ręcznie zaimplementować hitTest i przypisanie punktu. Ale jest greate tutorial.
Kolejna biblioteka, której nie testowałem, to Multi Touch SDK by PQ Lab.
- 1. Jak opracować aplikacje IronPython na Mono?
- 2. Jak pisać aplikacje na Facebooku w Javie?
- 3. Multitouch w Linuksie
- 4. Android multitouch?
- 5. Jak opracować pakiet w R?
- 6. Android multitouch i getActionMasked()
- 7. Zdarzenia Windows Multitouch i LabView
- 8. Jak opracować wtyczkę Outlook/Mail?
- 9. Jak opracować aplikację platformy Netbeans w środowisku Eclipse?
- 10. Jak opracować klienta/serwer Avahi
- 11. Wejście multitouch do symulatora iPad?
- 12. Jak opracować unikatowe GUI w Visual Studio?
- 13. Wyłączanie lub zapobieganie multitouch w działaniu
- 14. Jak opracować aplikację Augmented Reality dla Androida?
- 15. opracować i Silne Parametry
- 16. Jak opracować framework iOS zawierający zasoby graficzne?
- 17. Jak opracować aplikację WebRTC dla początkujących?
- 18. Jak opracować aplikację iPhone rozpoznawania twarzy?
- 19. Jak opracować standard (C# vs. VB.NET)?
- 20. Android Multitouch - Określ, który palec został podniesiony?
- 21. Android i iOS: jak opracować oba rozwiązania?
- 22. Aplikacje chmurowe a aplikacje internetowe
- 23. Aplikacje desktopowe PHP
- 24. omniauth-facebook uprawnienia Add opracować +
- 25. Jak debugować aplikacje Web2py?
- 26. Korzystanie opracować/CanCan/Rolify razem
- 27. Cofanie szyny generować opracować widoki
- 28. Qt 5.5 - Touch/multitouch nie działa z Ubuntu 14.04
- 29. Jak opracować natywną aplikację dla Androida w trybie offline?
- 30. Jak opracować aplikację paska stanu w systemie OS X Yosemite?
Czy MT4j pozwala deweloperowi tworzyć nowe gesty multitouch, oprócz wbudowanych? Nie od razu widać z listy funkcji MT4j na stronie. –
Tak, MT4j z pewnością pozwala tworzyć nowe gesty multitouch, ponieważ jest to bardzo ważne wymaganie dla aplikacji wielodotykowych. Wszystko, co musisz zrobić, to stworzyć nowy tak zwany procesor wejściowy i zarejestrować go w komponencie. Samouczki pokazujące, jak to zrobić, będą wkrótce dostępne. Do tego czasu możesz spojrzeć na kod źródłowy istniejących gestów. –
MT4j wygląda świetnie - niestety jest to GPL i dlatego nie nadaje się do komercyjnych aplikacji. – hendrik