"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > एक दस्तावेज़फ़िल्टर प्रभावी ढंग से JTextField इनपुट को पूर्णांकों तक कैसे सीमित कर सकता है?

एक दस्तावेज़फ़िल्टर प्रभावी ढंग से JTextField इनपुट को पूर्णांकों तक कैसे सीमित कर सकता है?

2025-01-01 को प्रकाशित
ब्राउज़ करें:978

How Can a DocumentFilter Effectively Restrict JTextField Input to Integers?

JTextField इनपुट को पूर्णांकों में फ़िल्टर करना: DocumentFilter के साथ एक प्रभावी दृष्टिकोण

हालांकि सहज ज्ञान युक्त, JTextField में संख्यात्मक इनपुट को मान्य करने के लिए एक कुंजी श्रोता का उपयोग करना अपर्याप्त है। इसके बजाय, एक अधिक व्यापक दृष्टिकोण एक DocumentFilter को नियोजित करना है।

DocumentFilter: एक मजबूत समाधान

एक 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 के लाभ

  • व्यापक सत्यापन: यह सुनिश्चित करता है कि सभी इनपुट, प्रवेश विधि की परवाह किए बिना, सत्यापन मानदंडों को पूरा करते हैं।
  • बहुमुखी: विभिन्न डेटा प्रकारों, संख्या प्रारूपों और भविष्य के सत्यापन का समर्थन करता है आवश्यकताएँ।
  • क्लीनर कोड: सत्यापन तर्क को केंद्रीकृत करता है, कोड जटिलता को कम करता है।

निष्कर्ष

DocumentFilter का उपयोग करके, आप प्रभावी ढंग से प्रतिबंधित कर सकते हैं पूर्णांकों में JTextField इनपुट, यह सुनिश्चित करना कि केवल वैध डेटा दर्ज किया गया है। यह एक मजबूत और विश्वसनीय दृष्टिकोण है जो प्रमुख श्रोताओं की सीमाओं को संबोधित करता है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3