2011-12-26 10 views
5

मैं जावा, और नेटबीन में एक नौसिखिया हूं। मैं एक साधारण कार्यक्रम बनाने की कोशिश कर रहा हूं जहां आप 2 नंबर पेश करते हैं और उनका योग दो से विभाजित हो जाता है। हालांकि, मैं JFormattedTExtField एस का उपयोग कर रहा हूं और मुझे नहीं पता कि इन्हें अनुमत इनपुट को कैसे अनुकूलित किया जाए। असल में मैं यह जानने का प्रयास कर रहा हूं कि कैसे:jFormattedTextField को कैसे सेट करें ताकि यह केवल 2 संख्याओं को अनुमति दे?

  • केवल JFormmatedTextField में संख्याओं को दर्ज करने की अनुमति दें;
  • केवल कुछ निश्चित संख्या की अनुमति दें;
+1

हो सकता है आप भी JSpinner पर नजर है, – mKorbel

उत्तर

9

आप नंबरफॉर्मैट का उपयोग कर सकते हैं और अधिकतम setMaximumIntegerDigits के साथ पूर्णांक अंकों को निर्दिष्ट कर सकते हैं।

यहाँ एक अच्छा article है। गारंटी चाहिए कि डाला स्ट्रिंग प्रारूप को संतुष्ट

NumberFormat f = NumberFormat.getNumberInstance(); 
f.setMaximumIntegerDigits(maxDigitsAmount); 
JFormattedTextField field = new JFormattedTextField(f); 

Format:

मूल रूप से आप की तरह कुछ कर सकते हैं। वैसे भी अगर कोई संख्या प्रदान की जाती है, तो टेक्स्टफील्ड इसे स्ट्रिंग के रूप में स्टोर करेगा। इसलिए यदि आप अपने मूल पूर्णांक की जरूरत है आप का सुझाव दिया @noise है जैसे कि यह पुनर्निर्माण की जरूरत:

Integer i = Integer.toString(field.getText()); 
+0

धन्यवाद! ओह और एक और बात। अगर कोई मुझे बता सकता है कि टेक्स्टफील्ड के पाठ को int में कैसे सेट किया जाए? उदाहरण, मेरे पास 2 इन्स (2 टेक्स्ट बॉक्स में दर्ज मान) और एक rezult int है, जो 2 इंट्स के योग के बराबर है। अगर मैं jTextField1.setText (rezult) को कॉल करता हूं तो यह int की बजाय स्ट्रिंग के लिए पूछता है। कोई मदद? – Bugster

+1

'Integer.toString (int) ' –

+0

का उपयोग करें बहुत बहुत धन्यवाद। मैंने लगभग इसे ठीक कर दिया है, सिवाय इसके कि जब मैं JFormattedTextField फ़ील्ड = नया JFormattedTextField (f) कहता हूं; यह मुझे एक त्रुटि देता है "प्रतीक JFormattedTextField नहीं मिल सकता"। कोई उपाय? – Bugster

संबंधित मुद्दे