हालांकि सहज ज्ञान युक्त, JTextField में संख्यात्मक इनपुट को मान्य करने के लिए एक कुंजी श्रोता का उपयोग करना अपर्याप्त है। इसके बजाय, एक अधिक व्यापक दृष्टिकोण एक DocumentFilter को नियोजित करना है।
एक DocumentFilter किसी दस्तावेज़ में परिवर्तनों की निगरानी करता है, जो इनपुट सत्यापन पर अधिक नियंत्रण प्रदान करता है। यह आपको इसकी अनुमति देता है:
एक उदाहरण कार्यान्वयन MyIntFilter DocumentFilter का उपयोग कर रहा है:
class MyIntFilter extends DocumentFilter { @Override public void insertString(FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException { Document doc = fb.getDocument(); StringBuilder sb = new StringBuilder(); sb.append(doc.getText(0, doc.getLength())); sb.insert(offset, string); if (test(sb.toString())) { super.insertString(fb, offset, string, attr); } else { // warn the user and don't allow the insert } } private boolean test(String text) { try { Integer.parseInt(text); return true; } catch (NumberFormatException e) { return false; } } ... // Other overridden methods for replace and remove }
DocumentFilter का उपयोग करके, आप प्रभावी ढंग से प्रतिबंधित कर सकते हैं पूर्णांकों में JTextField इनपुट, यह सुनिश्चित करना कि केवल वैध डेटा दर्ज किया गया है। यह एक मजबूत और विश्वसनीय दृष्टिकोण है जो प्रमुख श्रोताओं की सीमाओं को संबोधित करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3