मेरे पास कुछ सत्यापन है जो उपयोगकर्ता टैब पर क्लिक करते समय करता हूं। यदि सत्यापन == सत्य है तो टैब को दिखाने के लिए अनुमति दें (या स्विच करने के लिए)। अभी मैं सत्यापित करने के लिए स्टेट चेंज किए गए कार्यक्रम का उपयोग कर रहा हूं। समस्या यह है कि, जब आप किसी टैब पर क्लिक करते हैं तो यह टैब सामग्री दिखाता है और यदि सत्यापन == झूठी है तो यह पिछले टैब पर वापस स्विच हो जाता है। मैं नहीं चाहता कि यह तब तक स्विच करे जब तक सत्यापन == सत्य न हो। मैं यह कैसे कर सकता हूं, क्या मैं गलत घटना की जांच कर रहा हूं? धन्यवाद सभीजावा JTabbedPane टैब को केवल तभी स्विच करने की अनुमति देता है जब सही
उत्तर
JTabbedPane.setSelectedIndex (int अनुक्रमणिका) को ओवरराइड करने का प्रयास करें।
क्लीनर समाधान 'DefaultSingleSelectionModel.setSelectedIndex (अनुक्रमणिका)' को ओवरराइड करना और JTabbedPane के लिए मॉडल का उपयोग करना हो सकता है। फिर भी क्लीनर समाधान 'VetoableChangeListener' का समर्थन करने के लिए 'डिफ़ॉल्ट सिंगले चयन मॉडल' को ओवरराइड करना होगा। – xmedeko
पूरी तरह से सहमत हैं: xmedeki समाधान सुरक्षित है। – Zecas
सत्यापन = गलत, और tab.setEnabledAt (अनुक्रमणिका, सत्य) को वैधता = सत्य पर वापस चालू करने के लिए आप टैब को अक्षम करने के लिए विधि tab.setEnabledAt (अनुक्रमणिका, झूठी) का उपयोग कर सकते हैं।
संपादित करें: एक टैब को अक्षम करने से इसे भूरे रंग में डाल दिया जाएगा ताकि उपयोगकर्ता इसे पहले स्थान पर क्लिक न कर सके, जिसका अर्थ है कि उपयोगकर्ता टैब पर क्लिक करने से पहले सत्यापन जांच करने जा रहे हैं।
- 1. केवल तभी सेट करें जब टैब सक्रिय हो
- 2. JTabbedPane: चयनित टैब
- 3. जावा: JTabbedPane
- 4. बटन पर क्लिक करके jTabbedPane में टैब कैसे स्विच करें?
- 5. क्यों JSON केवल स्ट्रिंग की कुंजी को अनुमति देता है?
- 6. जावास्क्रिप्ट चलाना चाहिए तभी जब टैब/ब्राउज़र विंडो
- 7. हाई मेमोरी उपयोग केवल तभी जब मल्टीप्रोसेसिंग
- 8. जब उपयोगकर्ता ब्राउज़र टैब स्विच करता है
- 9. केवल तभी सत्य लौटें जब रूबी
- 10. JTabbedPane
- 11. Jquery UI दिनांक पिकर ... केवल शुक्रवार की अनुमति देता है?
- 12. JTabbedPane
- 13. केवल तभी लॉकिंग जब संपूर्ण विधि बनाम
- 14. JMock अन्य विधि को कॉल करने की अनुमति देता है
- 15. एंड्रॉइड - विजेट को अक्सर अद्यतन कैसे करता है, लेकिन जब यह दिखाई देता है तो केवल तभी होता है?
- 16. केवल सी ++ में परिभाषित व्यवहार की अनुमति देता है?
- 17. पैरामीटरेटेड थ्रेडस्टार्ट केवल ऑब्जेक्ट पैरामीटर की अनुमति क्यों देता है?
- 18. क्यों संकलक रूपांतरण को संकुचित करने की अनुमति देता है
- 19. ब्राउज़र जावास्क्रिप्ट को स्विच करने की अनुमति क्यों देते हैं?
- 20. सत्यापन की आवश्यकता केवल तभी क्षेत्र
- 21. साइटकोर विशिष्ट क्षेत्रों में सामग्री को प्रकाशित करने की अनुमति देता है केवल
- 22. क्यों रूबी केवल कुछ ऑपरेटर ओवरलोडिंग को अनुमति देता है
- 23. JTabbedPane: टैब के बाईं तरफ आइकन
- 24. केवल तभी शामिल करें जब फ़ाइल मौजूद है
- 25. टैब स्विच
- 26. जावा int को फ़्लोट करने के अंतर्निहित रूपांतरण की अनुमति देता है। क्यूं कर?
- 27. JTabbedPane टैब पर बंद बटन कैसे जोड़ें?
- 28. एम्बर राउटर केवल पत्ती मार्गों पर नेविगेट करने की अनुमति क्यों देता है?
- 29. क्यों जावा एनम में बराबर (ऑब्जेक्ट) को ओवरराइड करने की अनुमति नहीं देता है?
- 30. सनस्पॉट इंडेक्स केवल तभी जब खोज योग्य फ़ील्ड
ऐसा करने के लिए आदर्श यूआई/यूएक्स तरीका 'pane.setEnabledAt (अनुक्रमणिका, झूठी)' का उपयोग करके प्रश्न में टैब को "अक्षम" करना होगा, 'राज्य परिवर्तन' घटना में घुलनशील तर्क के बजाय कॉल करें। –
जब आप विचार बदलते हैं तो पूर्ण नियंत्रण के लिए आप 'JTabbedPane' के बजाय' कार्डलेआउट 'का उपयोग करके इसका संपर्क कर सकते हैं। 'लॉक टैब' 'JTabbedPane' का उपयोग करना मेरे लिए प्रतिद्वंद्वी होगा। –