2017-11-21 10 views
5

मैं कंसोल विंडो में मूल तीर-कुंजी आंदोलन को लागू करने का एक तरीका खोजने की कोशिश कर रहा हूं। मैं एक सी # स्क्रिप्ट में आया हूं जो बस एक स्विच स्टेटमेंट और कुछ चर का उपयोग करता है, लेकिन मेरा शिक्षक जावा का उपयोग करने पर जोर देता है।जावा के साथ कंसोल विंडो में मूल तीर-कुंजी आंदोलन को कैसे कार्यान्वित करें?

कुछ अन्य धागे से उत्तर सभी को लगता है कि जावा में यह संभव नहीं है जब तक कि आप निश्चित रूप से स्थापित नहीं करते हैं (अगर मैं गलत हूं तो सही करें) "फ्रेमवर्क" जैसे जेएनए और/या जेलाइन, लेकिन शुरुआत के रूप में मुझे नहीं पता कि क्या उन चीजों का भी मतलब है।

अब इससे पहले कि आप कहते हैं कि मेरे शिक्षक सोच हम ऐसा कर सकता है के लिए एक बेवकूफ है, वह कभी नहीं कहा यह जा करने के लिए तीर कुंजी आंदोलन किया था, मैं सिर्फ सोचा था कि यह शांत :)

+2

मैंने उछाल लिया क्योंकि यह कुछ ऐसा है जो मैंने थोड़ी देर के लिए सोचा है, लेकिन अनुसंधान के लिए परेशान नहीं है। मैं देख सकता हूं कि अन्य लोग इसे क्यों कम कर सकते हैं (कोई प्रयास नहीं है), लेकिन यह दिलचस्प है, प्रोग्रामिंग से संबंधित है, और दिखाता है कि ओपी ने कुछ शोध किया है। – byxor

+0

सी # में उपयोग की जाने वाली उसी तंत्र के साथ, keyEvent का उपयोग करें। पता चला KeyEvent पर अपना स्विच करें। अगर आपको अधिक स्पष्टीकरण की आवश्यकता है तो मुझे बताएं, मैं एक जवाब जोड़ूंगा –

उत्तर

3

यह और अधिक कठिन है होगा ऐसा प्रतीत होता है, ज्यादातर जावा प्लेटफ़ॉर्म पर काम करने के तरीके के कारण। , वहाँ एक दो समस्याएं हैं

InputStream in = System.in; 

    int next = 0; 
    do { 
     next = in.read(); 
     System.out.println("Got " + next); 
    } while (next != -1); 

अब: कुंजीपटल से पढ़ने के लिए बुनियादी समाधान, stdin उपयोग करती हैं इसलिए की तरह है

  1. यूनिक्स प्लेटफार्मों पर यह अगले चरित्र मुद्रित नहीं होगा के रूप में यह है दबाया गया लेकिन केवल रिटर्न के बाद ही दबाया गया, क्योंकि ऑपरेटिंग सिस्टम डिफ़ॉल्ट रूप से इनपुट
  2. तीर कुंजियों के लिए कोई असीसी कोड नहीं है, इसके बजाए टर्मिनल एमुलेटर पर निर्भर होने वाले तथाकथित भागने वाले दृश्य हैं, इसलिए मेरे मैक अगर मैं उपरोक्त कोड चलाता हूं और तीर-अप दबाता हूं और फिर वापसी कुंजी मुझे मिलता है निम्नलिखित उत्पादन:

    Got 27 // escape 
    Got 91 
    Got 65 
    Got 10 // newline 
    

इस के आसपास कोई अच्छा मंच स्वतंत्र तरीका नहीं है, यदि आप केवल यूनिक्स प्लेटफार्मों लक्ष्यीकरण कर रहे हैं, javacurses मदद कर सकता है।

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