سؤال

ولدي حقل النص الذي لا بد مع متغير عدد صحيح، لذلك عندما يدخل المستخدم الرقم في هذا المجال، وآلية ملزمة تلقائيا تحويل النص إلى عدد صحيح ومجموعات هذه القيمة إلى فار. المشكلة هي، منذ المستخدم بكتابة النص في حقل النص، أن آلية الربط وتحويل القيم فقط، وإذا المستخدم بكتابة بعض الحروف في ذلك، ملزمة لن تفعيل لأنه لا يوجد قيمة قانونية داخل حقل النص. ما أود أن الحاجة في مثل هذه الحالة، ملزم أن يؤدي التغيير مع قيمة فارغة، لذلك لدي لاغيا في بلدي صحيح فار.

وهكذا، إذا كان المستخدم أن ترك هذا الحقل فارغا أو شيء غير العدد، سيكون لديك لتحريك نشر قيمة لاغية ملزمة. عدم تجاهل الحدث ... كيف يمكن أن أفعل ذلك دون propgramming الأحداث على حقل النص؟

هل جافا ملزم قادر على تغيير السلوك الافتراضي الخاص به؟

هل كانت مفيدة؟

المحلول

وإلى جانب تغيير السلوك لآلية ملزمة، هل يمكن وضع المنسق في الحقل النصي الذي لا يقبل إلا الأرقام. كنت بحاجة لتمديد javax.swing.text.DefaultFormatter لهذا الغرض. ويمكنك بعد ذلك استخدام JFormattedTextField بدلا من JTextField العادي.

والنتيجة ستكون أن تحصل فقط على إدخال صالح في حيز النص الخاص بك وأنت ليس لديك لجعل أي شيء خارج عن قيم غير صحيحة.

نصائح أخرى

وما تحتاجه هو JFormattedTextField NumberFormat .

والدعم سوينغ لإدخال النص مقيدة مروع. سوف JFormattedTextField تعطيك تجربة المستخدم بائسة تماما. كما هو الحال مع معظم العمل مراجيح للاهتمام، وتجاهل JComponent والذهاب لهذا النموذج. في هذه الحالة Document، في DocumentFilter وجه الخصوص.

وكما يحدث لدي تطبيق سوينغ بسيط يستخدم حقول النص مقيدة إلى أعداد صحيحة أنني أعدت في وقت سابق. الوصف. <لأ href = "http://www.jroller.com/tackline /resource/PayCalculator.java "يختلط =" نوفولو noreferrer "> المصدر (وعلى وجه الخصوص createNumberDocument انظر).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top