merhaba kullanıcının jTextfield alanına sadece harf ve boşluk birakabilmesini istiyorum diger durumlarda jOptionPane ile uyarı verdirmek istiyorum
internette araştırıdım ve birşey buldum denedim aşağıdaki şekilde
Kod:
if (!(Pattern.matches("^[a-zA-Z]+$", answerField1.getText()))); JOptionPane.showMessageDialog(null, "Please enter a valid character", "Error", JOptionPane.ERROR_MESSAGE);
fakat bu durumda hangi tuşa basarsam basayım uyarı vermekte . bu konuda yardım istiyorum
Bu tarz kısıtlamalarda JTextField'in setDocument metodunu kullanabilirsin. Tabi bu metodu kullanırken buraya bir adet Document nesnesi gönderiyor olman gerekiyor; bunun için de buraya PlainDocument sınıfından türeteceğin bir inline class yazman gerekebilir. Ya da eğer bu tarz başka JTextField'lerin de olacaksa ayrı bir sınıf olarak da yazıp kullanabilirsin, tercihine kalmış. Burada önemli olan insertString metodunu override etmen, bu metod içinde kullanıcının girdiği değer içinde istemediğin karakter olup olmadığını kontrol edebilirsin. Eğer istemediğin herhangi bir karakter yoksa metoda gelen parametreleri aynı şekilde super.insertString( ... ) şeklinde gönderip işlemini tamamlarsın, yok eğer istemediğin karakterler bulunduysa kullanıcıya mesaj gösterirsin, ya da göstermezsin ama giriş de yapılmamış olur. Belki de sadece JTextField'in border'larını kırmızı yaparak istenmeyen giriş yapıldığını kullanıcıya aktarmış olursun. Bu anlattığımın örneği şu adreste bulunuyor, inceleyebilirsiniz. Yalnız buradaki örnekte kullanıcı belirli bir uzunlukta veri girmeye zorlanmış, siz bunu değiştirip harf ve boşluk kontrolü yapacak şekilde değiştirebilirsiniz.
Öneri: Size "Swing kütüphanesi ile yapacaksınız" denmediyse, JavaFX ile yapmayı deneyin derim. Hem yeni birşey denemiş olursunuz, hem de hocanızı etkilersiniz.