2008-12-15 13 views
17

उस दिन की उम्मीद है जब मल्टी-टच इंटरफेस अधिक व्यापक हो जाते हैं, क्या जावा में पुस्तकालय हैं जिनका उपयोग स्पर्श अनुप्रयोगों के विकास के लिए किया जा सकता है? मैं MouseListener/MouseMotionListener/MouseWheelListener के समान इंटरफेस की तलाश में हूं।जावा में मल्टी-टच एप्लिकेशन कैसे विकसित करें?

उत्तर

9

MT4j परियोजना सब कुछ आप जावा में मल्टीटच अनुप्रयोगों को विकसित करने की आवश्यकता है। सभी अच्छी तरह से ज्ञात मल्टीटच जेस्चर पहले में निर्माण कर रहे हैं और के रूप में माउस की घटनाओं को सुन (उदाहरण के लिए: component.addGestureListener (..)) सरल के रूप में पहुँचा जा सकता है। इसमें जावाफ़ेक्स के समान हार्डवेयर त्वरित दृश्य ग्राफ भी शामिल है। आप अपनी मशीन पर एक अयस्क अधिक चूहों को जोड़कर मल्टीटाउच इनपुट भी अनुकरण कर सकते हैं। http://www.mt4j.org

+0

क्या MT4j डेवलपर को अंतर्निहित लोगों के अलावा नए मल्टीटाउच जेस्चर बनाने की अनुमति देता है? वेबपृष्ठ पर MT4j सुविधाओं की सूची से तत्काल स्पष्ट नहीं है। –

+0

हां, MT4j निश्चित रूप से नए मल्टीटाउच जेस्चर बनाने की अनुमति देता है क्योंकि यह मल्टीटाउच अनुप्रयोगों के लिए एक बहुत ही महत्वपूर्ण आवश्यकता है। आपको बस इतना करना है कि एक नया तथाकथित इनपुट प्रोसेसर बनाएं और इसे एक घटक के साथ पंजीकृत करें। यह दिखाए जाने वाले ट्यूटोरियल जल्द ही आ रहे होंगे। तब तक आप मौजूदा जेस्चर के स्रोत कोड को देख सकते हैं। –

+0

MT4j बहुत अच्छा लग रहा है - दुर्भाग्य से यह जीपीएल है और इस प्रकार वाणिज्यिक ऐप्स के लिए उपयुक्त नहीं है। – hendrik

5

Sparsh पिछली बार मैं मल्टीटच जावा समाधान जांच कर रहा था से अपने बुकमार्क में अब भी है।

नहीं के रूप में सीधे आगे ठेठ माउस श्रोता के रूप में या श्रोता क्लिक करते हैं, यह अभी भी एक उचित इंटरफेस प्रदान करता है।

आपको sparshui.client.Client को लागू करने के लिए अपनी श्रवण कक्षा की आवश्यकता है, जिसके लिए 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.... 
} 

उसके बाद, आप अपने घटक

new ServerConnection("localhost", objectImplementingClientInterface); 

में गुजर साइट पर कोड उदाहरण को देखते हुए आप ढांचे के लिए बहुत बढ़िया सुझाव देना चाहिए, इशारे से पहचान सर्वर शुरू करने की जरूरत है।

+3

ओच ... वास्तव में, आपको घटनाओं को 'उदाहरण' करना होगा? वे कॉलबैक प्रदान नहीं करते हैं, processDragEvent, processZoomEvent, आदि? –

+0

जहां तक ​​मुझे पता है, वे केवल एक सामान्य "processEvent" कॉल का समर्थन करते हैं क्योंकि आप कस्टम जेस्चर जोड़ना चाहते हैं जो ढांचे के मूल नहीं हैं। यह फ्रेमवर्क कोड को संशोधित किए बिना एक्स्टेंसिबिलिटी प्रदान करता है। –

1

कैसे इस बारे में: http://kenai.com/projects/macmultitouch

+2

हाय वेन, कृपया लिंक-केवल उत्तरों का उपयोग करने से बचें क्योंकि ऑफ़-साइट लिंक मर सकते हैं और बेकार हो सकते हैं। –

0

पर इसे जांचें मुख्य रूप से मैं ग्राउंड अप से अपने यूआई को प्रोसेसिंग और डिज़ाइन करने में काम कर रहा हूं। मैं ऐसे समाधान की तलाश में हूं जो यूआई फ्रेमवर्क निर्धारित नहीं करता है जो एमटी 4 जे और जावाएफएक्स दोनों करता है। इसके अलावा, MT4J छोड़ दिया प्रतीत होता है।

यह एक आशाजनक समाधान कम से कम Windows के लिए की तरह लग रहा है, लेकिन मैं अनिश्चित हूँ अगर यह वास्तव में अभी तक जारी है: https://github.com/vialab/SMT

: http://wiki.gestureworks.com/index.php/GestureWorksCore:Gestureworks_Core_Tutorials

यह पार मंच, खुला स्रोत और सक्रिय प्रसंस्करण के लिए विशेष रूप से है

0

MT4J Windows 8

साथ काम नहीं करता applicatin केवल एक उपयोगकर्ता के लिए, आप JavaFX का उपयोग कर सकते है। स्पर्श घटनाओं के लिए अलग श्रोता हैं। लेकिन एक ही समय में दो संकेतों को संसाधित करना संभव नहीं है, क्योंकि सभी स्पर्श बिंदु एक इशारा में विलय करेंगे। बड़ी मल्टी टच स्क्रीन के लिए यह एक अपमानजनक है। सामान्य स्क्रीन के लिए, केवल एक उपयोगकर्ता कहां ठीक है।

लेकिन गेस्टरवर्क्स भी है। वहां आप नए इशारा को परिभाषित कर सकते हैं या पूर्वनिर्धारित इशारा कर सकते हैं। इशारे को एक एक्सएमएल फ़ाइल (जिसे जीएमएल कहा जाता है) में परिभाषित किया जाता है। कोई वस्तु अपने इशारे को संभाल सकती है। लेकिन आपको हिटटेस्ट और पॉइंट असाइनमेंट को मैन्युअल रूप से कार्यान्वित करना होगा। लेकिन greate tutorial है।

एक और पुस्तकालय है, जो मैं परीक्षण किया नहीं है, Multi Touch SDK by PQ Lab इस्त।

संबंधित मुद्दे