/ / जेस्पिनर को शून्य मान प्राप्त हो रहा है - जावा, स्विंग, इसनुल, जेस्पिनर, जफॉर्मटेडटेक्स्टफील्ड

जेएसपीनर को शून्य मूल्य मिल रहा है - जावा, स्विंग, इस्नुल, जेस्पिनर, jformattedtextfield

जब मैं शून्य मान लेना चाहता हूं JSpinner खाली है। लेकिन यह लौट आता है 0.0 जब मैं फोन करता हूँ getValue() समारोह।

  public JFormattedTextField getTextField(JSpinner spinner) {
JComponent editor = spinner.getEditor();
if (editor instanceof JSpinner.DefaultEditor) {
return ((JSpinner.DefaultEditor)editor).getTextField();
} else {
return null;
}
}

और यह मेरा तरीका है:

Object a = getTextField(jValueNum).getValue();

संपादित करें: या वहाँ किसी भी तरह से अधिक नहीं है getValue () फ़ंक्शन?

उत्तर:

जवाब के लिए 2 № 1

@ user2279774: उपयोगकर्ता परिभाषित मूल्यों के साथ जेस्पिनर सेट करें। केवल वही तरीका होगा जो मुझे पता है .. जैसे:

String[] colors = new String[] {
"Red", "Orange", "Yellow", "Green", "Blue","  ", "Purple"
};
SpinnerListModel model = new SpinnerListModel(colors);

उत्तर № 2 के लिए 1

लेकिन यह 0.0 मिलता है जब मैं getValue () फ़ंक्शन को कॉल करता हूं।

नंबर फॉर्मेटर के साथ JFormattedTextField के लिए गंदे हैक के बिना बहुत संभव नहीं है, नंबर इंस्टेंशन से जो भी नंबर है वह डिफ़ॉल्ट मान

जब मेरा जेस्पिनर खाली होता है तो मैं शून्य मान लेना चाहता हूं

वापसी शून्य (गलत विचार, क्योंकि संख्या का उपयोग संगणना के लिए किया जाना चाहिए) इस मामले में कि JSpinner double.valueOf (0.0) देता है

ऑब्जेक्ट a = getTextField (jValueNum) .getValue ();

जेस्पिनर भी कर सकते हैं, वापसी के लिए व्युत्पन्न संपादक का उपयोग करने का कोई कारण नहीं है


जवाब के लिए 0 № 3

आपने जो स्पिनर मॉडल सेट किया है, उसकी जांच करें। संभवतः आपने स्पिनरनंबरमॉडल सेट किया है। SpinnerDataModel के साथ प्रयास करें और स्ट्रिंग प्रारूप में सभी मान सेट करें।

यह संपादक (JFormattedTextField) को लौटाएगा जो ऑब्जेक्ट के लिए कॉन्फ़िगर किया गया है और आपको मान के रूप में रिक्त मिलेगा। :)