كان تقييد إدخال المستخدم على أعداد صحيحة إيجابية في تحكم 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:
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3