باستخدام محرر NetBeans GUI ، كيف يمكنني إنشاء حقل JTextField أو JFormattedText الذي يجب التحقق منه مقابل تعبير منتظم؟
-
21-09-2019 - |
سؤال
لدي تعبير منتظم (\d{4}\w{3}(0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]){2}
) أنني بحاجة إلى التحقق من صحة إدخال حقل نص مقابل عندما ينقر المستخدم على الزر "موافق" أو ينقل المؤشر إلى حقل آخر. أنني أعرف كيف أفعل ، كتابة الرمز. ومع ذلك ، أنا مهتم بما إذا كان من الممكن أن يقوم محرر واجهة المستخدم الرسومية NetBeans ببعض الأعمال من أجلي ، خاصة وأنني أبتعد عن Eclipse وتجاه Netbeans كإيدي المفضل ، وأود أن أستفيد بالكامل من الأدوات التي توفرها.
المحلول
افتح خصائص jtextfield الخاصة بك ، في علامة التبويب الخصائص ، ابحث عن inputVerifier. افتحه
الآن سيُطلب منك تقديم رمز InportVerifier.
ftf2.setInputVerifier(new InputVerifier() {
public boolean verifyText(String textToVerify) {
Pattern p = Pattern.compile("your regexp");
Matcher m = p.matcher(textToVerify);
if (m.matches()) {
setComponentValue(textToVerify);
return true;
}
else {
return false;
}
}
});
لم أقم بتجميع هذا الرمز ، لذلك يمكن أن يحتوي على أخطاء. لكني أعتقد أنك تحصل على الفكرة ؛)
نصائح أخرى
هذا ليس الحل الأسهل ، لكنه قوي للغاية: حاول عميل الربيع الغني, ، حيث يمكن الوصول إلى التحقق عبر:
public class Validation extends DefaultRulesSource {
private Constraint NAME_VALIDATION = all(new Constraint[]{minLength(3), required()});
public void load() {
addRules(new Rules(Person.class) {
@Override
protected void initRules() {
add("name", NAME_VALIDATION);
}
});
...
ويتم إنشاء نموذج واجهة المستخدم الرسومية بسهولة عبر:
TableFormBuilder formBuilder = getFormBuilder();
formBuilder.add("firstName");
formBuilder.add("name");
formBuilder.row();
على سبيل المثال ، انظر هنا للتحقق أو هنا لمزيد من Infos. أنا أستخدم هذا بنجاح في بلدي مشروع مفتوح المصدر ...
وبهذه الطريقة ، يمكنك إنشاء مكون تأرجح أكثر عمومية يمكن إضافته إلى لوحة مكون NetBeans