java - JSpinner returns default value instead of typed one -
मेरे पास JSpinner
के साथ SpinnerNumberModel (1, डबल। MIN_VALUE, Double.MAX_VALUE , 0.01)
अगर मैं सीधे JSpinner
- 1000
पर टाइप करता हूं, तो कुछ संवाद में ठीक क्लिक करें, और स्पिनर प्राप्त करें
यदि मैं
1000
टाइप करता हूं और JDialog पर क्लिक करने के लिए कहीं और फ़ोकस बदलते हैं
कोड> एस एमी स्पेस और पढ़ने के बाद मान यह सही होगा = 1000
। अगर मैं स्पिनर के तीर के साथ मूल्य बदलूंगा - वैल्यू भी सही होगी।
Jspinner
को कैसे तय किया जाए, इसलिए इसे मूल्य प्राप्त करने से पहले कहीं और फ़ोकस को बदलने के बिना टाइपिंग मानों का समर्थन किया जाएगा।
जावा जेडीके 1.6.0_23
बताता है कि ऐसा क्यों होता है और कैसे इसे हल करें।
एएसपीपीनर के पास एक एकल बच्चा घटक है जो प्रदर्शित करने के लिए ज़िम्मेदार है और मौजूदा तत्व या मॉडल के मूल्य को बदलता है, जिसे संपादक कहा जाता है संपादक जेएसपीनर के निर्माता द्वारा बनाया गया है और संपादक संपत्ति के साथ बदल सकता है। जेसपीनर का संपादक चेंजएवेन्ट्स के लिए सुनकर मॉडल के साथ सिंक में रहता है। यदि उपयोगकर्ता ने एडिटर द्वारा प्रदर्शित मान को बदल दिया है, तो मॉडल के मूल्य के लिए संपादक से अलग होने के लिए संभव है यह सुनिश्चित करने के लिए कि मॉडल का मान एक जैसा है, क्योंकि संपादक कमेटी विधि का उपयोग करता है, जैसे:
try {spinner.commitEdit (); } पकड़ (ParseException pe) {{संपादन / संपादित मूल्य अमान्य है, spinner.getValue () / / पिछले वैध मान वापस करेगा, आप स्पिनर को यह दिखाने के लिए वापस लौट सकते हैं कि: JComponent editor = spinner.getEditor () अगर (संपादक instof DefaultEditor) {((DefaultEditor) संपादक) .getTextField ()। SetValue (spinner.getValue ();} // कुछ ज्ञात मान को रीसेट करता है: spinner.setValue (fallbackValue); // या पिछले वैध मान को वर्तमान में, जिसमें / / / आप को कुछ भी करने की ज़रूरत नहीं है।} वापसी स्पिनर .getValue ();
Comments
Post a Comment