2014-04-11 8 views
7

में बारकोड स्कैनर से पढ़ना मैंने जावा टेक्स्टफील्ड में बार-कोड पढ़ने के लक्ष्य के साथ, डेलटिक से बार-कोड स्कैनर स्थापित किया है। हालांकि, जब मैं स्विंग में बार कोड स्कैन करता हूं, परिणामी पाठ कचरा होता है। मैं इसका उपयोग नहीं कर सकता। स्टैंडअलोन java.awt.TextField पर ठीक काम करता है, लेकिन जब मैं इसे अपने कोड में एकीकृत करता हूं, तो यह कचरा गैर-मैप्पेबल पात्र भी बनाता है।स्विंग

पता नहीं है कि मुझे जावा, के लिए एक विशिष्ट ड्राइवर की आवश्यकता होगी या नहीं, मैंने स्ट्रिंग को यूटीएफ -8 से आईएसओ -88 में परिवर्तित करने की कोशिश की है ... कोई फायदा नहीं हुआ।

2 दिनों में व्यर्थ होने के बाद से इसे देख रहे थे।

किसी भी मदद की सराहना की जाएगी।

धन्यवाद

-innocent

+4

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

+1

इसके अलावा, डिबगिंग के लिए, उस फ़ील्ड पर एक प्रमुख श्रोता जोड़ने का प्रयास करें जो सभी 'कुंजी टाइप किए गए' वर्णों को मुद्रित करता है (और शायद कुंजी प्रेस और रिलीज कीकोड भी)। आप शायद अपमानजनक कीस्ट्रोक (ओं) की पहचान कर सकते हैं और उन्हें कुछ भी करने के लिए मानचित्र नहीं कर सकते हैं ताकि वे टेक्स्ट के रूप में आउटपुट न करें। –

+2

धन्यवाद एक गैर स्विंग टेक्स्टफील्ड में, हां। हालांकि, जब मैंने इसे अपने मुख्य कार्यक्रम में एकीकृत किया, तो यह खराब हो गया। टेक्स्ट को कैप्चर करने के लिए मैंने एक KeyListener जोड़ा है, लेकिन यह टेक्स्ट भी खराब है। मैं अभी भी इसे और डिबग कर रहा हूं। स्कैनर डेलिटिक QW2100 है। – user3524961

उत्तर

1

स्कैनर को रीसेट सभी spurios पात्रों दूर करने की कोशिश/कोड हो सकता है कि स्थापित किए गए हैं; संदर्भ गाइड स्कैनर बचने दृश्य है, जो स्विंग

के लिए कुछ परेशानी के कारण हो सकता से http://www.datalogic.com/eng/quickscan-i-lite-qw2100-pd-163.html

बारकोड स्कैन करें उत्पाद संदर्भ गाइड डाउनलोड के रूप में gs1-128 कोड के लिए डिफ़ॉल्ट रूप से भेज देंगे बारकोड आईडी के अनुसार यानी प्रोग्रामिंग मोड

प्रासंगिक अनुभाग से जाने में प्रवेश करने और सभी प्रस्तावना दूर करने के लिए कोड स्कैन और सभी कोड

आप कीबोर्ड अनुकरण और कोडपेज के विभिन्न प्रकार की कोशिश कर सकते के लिए उद्देश्य लेबल निकालने के लिए करने के लिए।

+0

बहुत बहुत धन्यवाद। – user3524961

0

ALT + NumPad विधि का उपयोग कर बारकोड स्कैनर से आने वाले KeyEvents में कोई समस्या है। जावा एएलटी कुंजी दबाए जाने पर यादृच्छिक आउटपुट के साथ कीटाइप किए गए ईवेंट जेनरेट करता है। समस्या जावा 7 और जावा 8 जेआरई के मौजूदा संस्करणों में मौजूद है (मैंने इसे विंडोज 8, विंडोज 7 और उबंटू 14 पर जेआरई 7u67 और जेआरई 8u20 के साथ परीक्षण किया है)।

मेरे समाधान एक KeyEventDispatcher रजिस्टर करने के लिए है कि ब्लॉक KeyEvents जब एएलटी विधि सक्रिय है:

KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(
    new AltBugFixKeyEventDispatcher()); 

public class AltBugFixKeyEventDispatcher implements KeyEventDispatcher { 

    private int i = -1; 

    @Override 
    public boolean dispatchKeyEvent(KeyEvent ke) { 
     if (ke.isAltDown()) { 
      switch (ke.getID()) { 
       case KeyEvent.KEY_PRESSED: 
        if(ke.getKeyCode() == KeyEvent.VK_ALT){ 
         i = 0; 
        }else if(Character.isDigit(ke.getKeyChar())){ 
         i++; 
        }else{ 
         i = -1; 
        } 
        break; 
       case KeyEvent.KEY_RELEASED: 
        break; 
       case KeyEvent.KEY_TYPED: 
        break; 
      } 
      if(i != -1){ 
       return true; 
      } 
     } 
     return false; 
    } 
} 
+0

"मुझे लगता है" कृपया तथ्यों को दें – tod

+0

धन्यवाद, टोड, मैंने विवरण को सही किया है। वैसे भी, इस हैक के बिना एएलटी + न्यूपैड मोड में बारकोड स्कैनिंग असंभव है, मैं 3 साल के लिए समाधान खोज रहा हूं! इस बग ने मेरे लिए आय का बहुत नुकसान हुआ। मैं समझ नहीं पा रहा हूं कि जावा में इतनी गंभीर और मूल समस्या अभी भी हल नहीं हो सकती है। – JHead

+0

क्योंकि यदि आपको मनमाने ढंग से विस्तारित एएससीआई डेटा की आवश्यकता है तो आपको सीरियल पोर्ट से सीधे पढ़ने की आवश्यकता है –