Text Alanina Istenmeyen Karakterlerin Yaziminin Engellenmesi (Java Keylistener)

Java Keylistener (Text alanina Sadece sayisal deger girme)

Bu yazimda Java da textfield alanina girilmesini istemedigimiz tuslari engellemenin nasil yapilacagini anlatacagim. 

Genellikle textfield alanina sadece rakam girmek isteyebiliriz. Örnegin yas degerini telefon degerini veyada sayisal baska bir degeri almak için kullanacagimiz text alanina sadece rakam girilmesi için belli bir islem yapmamiz gerekir. Tutarsizlik çikmasini önlemek için bu alanlara harf girisini engellemeliyiz.

Ilk olarak keylistener sinifini kullanmaliyiz…

Bir sinif açalim öncelikle adi Keylist olsun ve bu sinifi keylistener kütüphanesinden implements etmeliyiz.

 public class KeyList implements KeyListener {

    public tabmenu tb = new tabmenu();//bir önceki derste yaptigimiz tab menu sinifinda herhangi bir text alanina bu maskelemeyi yapacagimizdan bu sinifin nesnesini türettik

    public void keyTyped(KeyEvent e) {
        char caracter = e.getKeyChar();//hangi tusa basildigini okuyoruz
        if (((caracter < '0') || (caracter > '9')) && (caracter != '\b')) {// bu if sart kontrolünde sadece 0 ile 9 arasinda rakamlarin girilebilecegini belirtiyoruz

            e.consume();
        }
    }

    public void keyPressed(KeyEvent e) {//tusa basildiginda aktif olur.
    }

    public void keyReleased(KeyEvent e) {//tus birakildiginda aktiflesir.
    }
}

Bu class böyle olusturulduktan sonra diger siniftan nasil gönderecegimizi anlatacagiz. Bu arada hangi tusa basildigini KeyEvent.getKeyCode(); fonksiyonu ile okumakta mümkündür.

Öncelilee tabmenu sinifinda

public JTextField jt_turAdedi;

Bir text alani olustururyoruz.

Sonra keylist sinifinin nesnesini ve o sinifta bu sinifin nesnesini bularak esitliyoruz.

KeyList kl = new KeyList();
kl.tb = this;

Bütün bunlari yaptiktan sonra text alanimizin özelliklerini olusturuyoruz:

jt_turAdedi = new JTextField();
jt_turAdedi.setBackground(Color.white);
jt_turAdedi.setBounds(170, 300, 125, 25);
jt_turAdedi.addKeyListener(kl);

En önemlisi de AddKeylistener(kl) ile kontrolleri yapacagimiz sinifin nesnesini gönderiyoruz.

Artik bu text alanina sadece sayisal deger girmek mümkün. Bu ve bunun gibi kontroller ile text alanlarina istedigimiz esnekligi kazandirmamiz mümkün…

 

One thought on “Text Alanina Istenmeyen Karakterlerin Yaziminin Engellenmesi (Java Keylistener)

  1. Faydalandığım bir çalışma oldu teşekkürler. Yanlız virgüllü rakam giremiyoruz, bir çözümü var mıdır.

Mus Gökhan ÇELİK için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir