"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يحد JTextField INTEGER فقط؟

كيف يحد JTextField INTEGER فقط؟

نشر في 2025-04-16
تصفح:994

How to Effectively Restrict JTextField Input to Only Integers?

حصر إدخال jtextfield في الأعداد الصحيحة

كان تقييد إدخال المستخدم على أعداد صحيحة إيجابية في تحكم JTextfield مشكلة شائعة في البرمجة. على الرغم من أنك حاولت استخدام قائمة مفاتيح لهذا الغرض ، إلا أن هناك نهجًا أكثر فعالية. المعايير. javax.swing.text.plaindocument ؛ استيراد javax.swing.text.documentFilter ؛ استيراد javax.swing.text.attributeset ؛ استيراد javax.swing.text.badlocationException ؛ فئة intdocumentfilter يمتد plaindocument { @تجاوز public void insertString (filterBypass FB ، int rofset ، سلسلة السلسلة ، attributeset attr) يلقي badlocationexception { if (string == null || string.isempty ()) { super.insertString (FB ، الإزاحة ، السلسلة ، attr) ؛ } آخر { يحاول { integer.parseint (سلسلة) ؛ super.insertString (FB ، الإزاحة ، السلسلة ، attr) ؛ } catch (numberformatexception e) { // حذر المستخدم ولا تسمح بالإدراج } } } @تجاوز استبدال الفراغ العام (FilterBypass FB ، إزاحة int ، طول int ، نص السلسلة ، attributeset attrs) يلقي badlocationexception { if (text == null || text.isempty ()) { super.replace (FB ، الإزاحة ، الطول ، النص ، attrs) ؛ } آخر { يحاول { integer.parseint (text) ؛ super.replace (FB ، الإزاحة ، الطول ، النص ، attrs) ؛ } catch (numberformatexception e) { // حذر المستخدم ولا تسمح بالإدراج } } } }

لاستخدام هذا الفلتر ، وقم بتسهيله وضبطه على كائن PlainDocument المرتبط بـ jtextfield:

    doc plaindocument doc = (plaindocument) textfield.getDocument () ؛ doc.setDocumentFilter (جديد intdocumentFilter ()) ؛
  • هذا التنفيذ:
  • يحاول المستخدم إدخال سلسلة فارغة أو فارغة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3