मेरे पास संपादन योग्य JComboBox है जहां टेक्स्ट टाइप होने पर मैं कुछ कार्रवाई करना चाहता हूं, या तो टाइपिंग या चयन करके। इस मामले में, पाठ एक पैटर्न है और मैं यह सत्यापित करना चाहता हूं कि पैटर्न मान्य है और उन मैचों को दिखाएं जिनके परिणामस्वरूप कुछ परीक्षण डेटा होते हैं।मुझे कैसे पता चलेगा कि एक संपादन योग्य JComboBox का पाठ बदल दिया गया है?
स्पष्ट करने के बाद, एक एक्शनहैंडलर संलग्न करें, मैंने पाया है कि, टाइपिंग के लिए, घटना अविश्वसनीय रूप से आग लगती है, सर्वोत्तम (चयन ठीक है)। और जब टाइपिंग के परिणामस्वरूप आग लगती है, पाठ पुनर्प्राप्त (getEditor()। GetItem() का उपयोग करके, getSelectedItem() केवल सूची से चयनित होने पर पाठ प्राप्त करता है) जैसा टेक्स्ट था जब आखिरी घटना को निकाल दिया गया - यानी, यह हमेशा गायब हो जाता है कि कार्रवाई घटना को निकाल दिया गया था इससे पहले चरित्र को तुरंत टाइप किया गया था।
मैं कुछ छोटी देरी (500ms से 1 सेकेंड) के बाद कार्रवाई की घटना को आग लगने की उम्मीद कर रहा था, लेकिन ऐसा लगता है कि इसे तुरंत (यदि इसे बिल्कुल निकाल दिया जाता है) पर निकाल दिया जाता है।
केवल एकमात्र व्यावहारिक विकल्प मैं सोच सकता हूं कि फोकस-प्राप्त पर 1 सेकंड टाइमर शुरू करना है, इसे फोकस-खोने पर मारना और समय-समय पर सामग्री अलग होने पर टाइमर एक्शन के रूप में काम करना है।
कोई विचार या सुझाव?
कोड के टुकड़े विशेष रूप से दिलचस्प नहीं हैं:
find.addActionListener(this);
...
public void actionPerformed(ActionEvent evt) {
System.out.println("Find: "+find.getEditor().getItem());
}
धन्यवाद, मैं इसे आज़मा दूंगा। मुझे पूरी तरह से स्विंग पर कोई फर्क नहीं पड़ता, लेकिन कभी-कभी कुछ व्यवहार या ट्रैफिक कुछ घटनाओं को कैसे प्राप्त करना है, यह स्पष्ट है कि ** FAR ** स्पष्ट है। –
ठीक है, इसलिए विधि कॉल के "1 9" स्तर को अलग करना ... एक दस्तावेज़ श्रोता जोड़ने के बाद, जब घटना होती है तो मुझे दो कॉम्बो-बॉक्स बदलने के लिए कोई रास्ता नहीं मिल सकता है। इस बिंदु पर, एक साधारण टाइमर बल्कि आकर्षक लग रहा है। –
मैंने दो सीबीएस के लिए अंतिम ज्ञात पाठ संग्रहीत किया है, और यह निर्धारित करने के लिए कि दस्तावेज़ ईवेंट को निकाल दिया गया है, यह निर्धारित करने के लिए इसका उपयोग करें। यदि आप जानते हैं कि ईवेंट को वापस उस घटक से कैसे बांधना है जो इसे निकाल देता है जो उपयोगी जानकारी होगी - क्योंकि दस्तावेज़वेन्ट मानक एडब्ल्यूटी ईवेंट या java.util.EventObject नहीं है। –