2017-03-07 4 views
14

मैं मौजूदा क्रॉस प्लेटफार्म जावा प्रोजेक्ट में बहु स्पर्श जोड़ने की कोशिश कर रहा हूं। मैंने 2 तरीकों से देखा है। कई अन्य तरीके थे लेकिन वे क्रॉस प्लेटफ़ॉर्म या आवश्यक विशेष सॉफ़्टवेयर नहीं लग रहे थे।मल्टी-टच क्रॉस प्लेटफार्म जावा एप्लिकेशन (विंडोज़, मैक, और लिनक्स (उबंटू) (संभवतः एंड्रॉइड))

  1. JavaFX - कार्य इशारा खिड़कियों और OSX पर/touchevent घटनाओं लेकिन उबंटू 16.04 पर काम नहीं कर रहा।
  2. MT4J - बंद होने और/या असमर्थित होने लगते हैं।

उपरोक्त के लिए मेरे निष्कर्ष गलत हो सकते हैं और अच्छी प्रतिक्रिया देने के बाद उन्हें फिर से प्रयास करने के लिए तैयार हैं।

क्या कोई क्रॉस प्लेटफार्म मल्टी-टच जावा एप्लिकेशन प्राप्त करने के लिए वैसे भी है? ऐसा लगता है कि मुझे कुछ देशी कोड लिखने और जेएनआई के माध्यम से जोड़ने की आवश्यकता हो सकती है जो बहुत सारे काम की तरह दिखता है। विचार की इस पंक्ति पर कोई विचार? फ़ीड वापस सराहना की है, धन्यवाद।

निरंतरता 1.0:

मैं लिनक्स पर JavaFX का उपयोग कर ज्यादातर क्योंकि केवल दोष यह सही JavaFX प्रयोग करने के लिए अब linux मल्टीटच समर्थन है जांच कर रखा है। जो मैंने पाया है वह है कि जावाएफएक्स मल्टीटाउच लिनक्स वितरण पर काम करता है जो एम्बेडेड सिस्टम के लिए हैं (उदा: रास्पबेरी पी, शायद सबसे ईमानदार होना)। मैं इससे क्या एकत्र कर सकता हूं अगर ओपनजेएफएक्स को एम्बेडेड सिस्टम के लिए संकलित किया जा सकता है तो ओपनजेएफएक्स का एम्बेडेड वर्जन एक्स 11/जीटीके के बजाय इनपुट (/ dev/input /) प्राप्त करने के लिए सीधे डिवाइस ड्राइवरों का उपयोग करता है। चूंकि डेस्कटॉप वातावरण के लिए लिनक्स डिस्क्स डेस्कटॉप वातावरण में इनपुट के लिए एक्स 11/जीटीके का उपयोग करता है, इसलिए जावाएफएक्स इन घटनाओं को समर्थन की कमी के कारण प्राप्त करने में असमर्थ है।

मैं एक लिंक का उपयोग नहीं करना चाहते हैं, लेकिन यहाँ यह कम से कम मेरे लिए

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

ऊपर के लिंक है, लगता है, 86 प्रणालियों के लिए OpenJFX का एक संस्करण के संकलन के बारे में होने (x64 काम करना चाहिए) जो डिवाइस इनपुट प्राप्त करने के एम्बेडेड सिस्टम तरीके का उपयोग करता है। मैं इस संस्करण को संकलित करने में सक्षम हूं लेकिन जब मैं चलाता हूं तो यह डेस्कटॉप को क्रैश करने लगता है और कभी-कभी यह जावा ऐप को छोड़ देता है। जब जावा ऐप चल रहा है स्पर्श घटनाएं काम करती हैं लेकिन यह अंतिम परिणाम केवल स्वीकार्य नहीं है क्योंकि यह अप्रत्याशित है और डेस्कटॉप प्रबंधक को क्रैश करना प्रतीत होता है (इसके बाद डेस्कटॉप के रीबूट की आवश्यकता है)।

निरंतरता 1.1:

मैं TUIO का उपयोग कर में देखा लेकिन नमूना कार्यक्रमों में से कोई भी काम किया। वे कहते हैं कि आपको एक टीयूआईओ सक्षम डिवाइस की आवश्यकता है जो एक विशेष मानक/प्रोटोकॉल हो सकता है जो मेरे डिवाइस का उपयोग नहीं करते हैं। बहुत कुछ सिर्फ टीयूआईओ डेमो डाउनलोड किया और इसे बिना किसी किस्मत के टच स्क्रीन पर चलाया।

मैंने अपने जावा एप्लिकेशन विंडो में xev को जोड़ने और परिणामों को स्ट्रीम करने के बारे में सोचा था, बाद में जावा एप्लिकेशन द्वारा पढ़ा जा सकता है और जावा घटनाओं में पार्स किया जा सकता है। यह बहुत हैकी लगता है और मुझे यकीन नहीं है कि यह भी काम करेगा। अगर कोई इस काम की संभावना को पेश करेगा तो मैं कोशिश कर सकता हूं। लेकिन इस बिंदु पर यह बहुत काम करने के तरीके की तरह लगता है।

निरंतरता 1.2:

इस https://bugs.openjdk.java.net/browse/JDK-8090954 मिले और सोचा कि यह दिलचस्प था।

नीचे दिए गए समाधान को पोस्ट किया गया।

उत्तर

4

हाल ही में किया गया है कई क्रॉस प्लेटफॉर्म परियोजना जनरेटर

देशी प्रतिक्रिया, कॉर्डोबा उन

मैं का इस्तेमाल किया है में से कुछ प्रतिक्रिया मूल निवासी यह कर रहे हैं मंच के अनुसार जावास्क्रिप्ट कोड जो नीचे संकलित किया गया है का उपयोग करता है

React native has support for Gesture Control programming 

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

you can also interface the react portion of code with the existing JAVA code for the app which you have already written 


https://facebook.github.io/react-native/docs/integration-with-existing-apps.html 

और कृपया जवाब को स्वीकार करता है, तो यह उपयोगी

+1

क्या आप उदाहरण दे सकते हैं कि विंडोज़, मैक और लिनक्स पर बहु ​​स्पर्श को सक्षम करने के लिए एक पूर्ववर्ती जावा प्रोजेक्ट लेने के लिए कोई इसका उपयोग कैसे कर सकता है? या समझाओ कि ऐसा करने के लिए क्या करना होगा। – mpyne

+0

प्रश्न विशेष रूप से जावा के बारे में है, यह कहकर कि अन्य प्लेटफार्म हैं, जावा आधारित नहीं, सहायक नहीं हैं। – caiocpricci2

+0

यहां तक ​​कि थोड़ी सी सहायता भी है कि हम डेस्कटॉप जावा ऐप के साथ इसे कैसे एकीकृत करेंगे, इसकी सराहना की जाएगी और मेरी इनाम प्राप्त होगी। लिंक शुरू करने के लिए जानकारी पर लिंक बहुत छोटा है। – vextorspace

1

समाधान हमारे लिए किया गया है ई टीयूआईओ और अपनी मल्टी-टच लाइब्रेरी रोल करें। यह चाल TUIOCLient शुरू कर रही थी और एक टीयूआईओ सर्वर चला रही थी। TUIOCLient एक दिए गए बंदरगाह पर सुनता है और टीयूआईओ सर्वर टीओआईओ क्लाइंट बंदरगाह पर बंदरगाह के लिए ओएस घटनाओं को आगे बढ़ाता है।

मैंने लिनक्स के लिए mtdev2tuio सर्वर (आउटपुट ब्रिज) का उपयोग किया और इसे एक टीयूआईओ क्लाइंट के साथ चलाया।

उदाहरण प्रवाह:

1.) TUIOClient पोर्ट पर ध्यान एक्स

2.) TUIOServer ओएस घटनाओं से करने के लिए पोर्ट x TUIO घटनाओं अग्रेषण y

लिनक्स:

1.) नया TUIOCLient (3333)

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

समाधान आदर्श नहीं है लेकिन यह किसी भी डिवाइस पर मल्टी-टच का समर्थन करता है और समर्थन देना चाहिए, बशर्ते एक टीयूआईओ सर्वर (आउटपुट ब्रिज) चल रहा हो। एक और नकारात्मक पक्ष को छूने और उन्हें जेश्चर में व्याख्या करने की आवश्यकता है। यह भी ध्यान दें कि यह कैसे विकसित किया गया है यह बताता है कि आप विभिन्न ढांचे में इसका उपयोग कैसे करते हैं। स्विंग/जावाएफएक्स में हमारा इस्तेमाल करने की आवश्यकता होगी।

+0

प्लस तरफ, यह आपको जो भी इशारा चाहते हैं उसे बनाने की स्वतंत्रता देता है! – vextorspace

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