KOD DÜNYAM
kod dünyam

Her Küçük Projenin Kalbinde Doğmayı Bekleyen Büyük Bir Proje Vardır.. (KodDünyam)

30 Ocak 2017 Pazartesi

0 EVENTS - Olay Güdümlü Programlama (JAVA)

EVENTS (Olay)

GUI bileşenlerinin nasıl kullanacağınızı anlayabilmek için olay mekanizmasının iyi kavranması gerekiyor. 




Olay(Events) nedir ? 
Bilgisayarınızda yaptığınız her bir etkileşim , her işlem , farenize her tıklamanız, fareyi sürüklemeniz, klavyenizin bir tuşuna basmanız vb. her eylem programlamada olay (event) olarak tanımlanır. 
Bilgisayar (programınız) olayları işleyerek kullanıcıya cevap verir. Bu nedenle oluşturduğunuz GUI bileşenleri
, doğru olay mekanizması kurulmadığı sürece yalnızca görüntüden ibarettir. Olay mekanizmasının çalışma prensibini kısaca açıklayacak olursak : 

- Programcı oluşturduğu bileşenlere birer dinleyici atar. 
- Dinleyici (Listener) denilen özel thread'ler program boyunca atamalarının yapıldığı nesne üzerinde, ilgili oldukları olayların oluşup oluşmadığını denetler. Olay meydana geldiğinde dinleyici tetiklenmiş olur. 
- Tetiklenen dinleyici, olay işleyicisi (handler) denilen bir metodu çalıştırır. Böylece olaya karşılık gerekli işlemler dizisi başlatılmış olunur. 

Olay 4 temel parça ile işlenir;


1. Olay nesnesi (Event object) 
2. Olay kaynağı (Event source) 
3. Olay dinleyicisi (Event Listener) 
4. Olay işleyicisi (Event Handler) 


Java'da olay mekanizması için gerekli metodlar AWT kütüphanesi içinde bulunur.


ÖRNEK:
 
   
  public JButton buton = new JButton("Tıkla"); 
   
  buton.addActionListener(new ActionListener() 
  { 
   
   public void actionPerformed(ActionEvent e) 
   { 
    JOptionPane.showMessageDialog(null , "Selam !"); 
   } 
   
  }); 
   


Yukarıdaki örnekte bir buton oluşturduk ve tıklandığında ekrana "Selam !" mesajının çıkmasını sağladık. 

Olay nesnemiz e isimli ActionEvent nesnesi. Olay kaynağımız ise tabiki buton'un kendisi.Olay kaynağı bileşene ihtiyaç duyarsanız olay nesnesi üzerinden getSource() metodunu kullanarak çağırabilirsiniz. Örneğin bu program parçası için : 

(JButton) e.getSource(); 

komutu ile butonumuzun referansına erişebiliriz. 

addActionListener() metodu ile butonumuza bir dinleyici atadık. Bu komut sayesinde programın arkaplanında sürekli u dinleyici buton için tetikte bekleyecek ve olay oluştuğunda yani butona tıklandığında devreye girerek olay işleyicisi metodu çalıştıracak. Olay şileyici metodumuz ise bu programcıkta actionPerformed() metodu. 

Yani size düşen tek iş oluşturduğunuz nesneye bir dinleyici atamak ve bu dinleyici sınıfın içindeki implement edilmemiş abstract handler metodların gövdelerini yazmak. Bu örnekte listener'ı argüman olarak metod parantezleri içinde yazdık. Daha sade ve anlaşılır olarak isterseniz listener sınıfını ayrıca yazabilirsiniz.(Listener'lardan sınıf olarak bahsetsemde bu ağız alışkanlığında ileri geliyor. Listener'lar aslında birer interface 'dir. ) 

Gerekli listener arayüzünü yazdığınız sınıfa implement edip bileşenlerinize listener olarak bu sınıfları atayabilirsiniz. Örnekten daha iyi anlaşılacaktır. 


 
   
  public class dinleyici implements ActionListener 
  { 
   
   public dinleyici() 
   { 
   
   } 
   
   @Override 
   public void actionPerformed(ActionEvent) 
   { 
    JOptionPane.showMessageDialog(null , "Selam !"); 
   } 
   
  } 
   


Dinleyici sınıfımızı yukarıdaki gibi yazdıktan sonra geriye bu dinleyiciyi ilgili nesneye atamak kalıyor : 

 
   
  public JButton buton = new JButton("Tıkla"); 
   
  buton.addActionListener(new dinleyici()); 

Tabiki önemli bir noktada hangi işte hangi interface gerekli bilinmelidir. Örnekte kullandığımız ActionListener, daha çok butonlarla kullanılan bir dinleyici. 
Fare ile ilgili olaylarda MouseListener , MouseMotionListener vs. 
Klavye ile ilgili olaylarda KeyEvent ..vs. 
Pencere olaylarında FocusEvent ..vs. çeşitli dinleyici arayüzleri kullanılmaktadır. 





KOLAY GELSİN.






  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

0 yorum:

Yorum Gönder

Freelance Programcı (Yazılımcı)

Serhat Şos

Profesyonel bir yaklaşım ve uygun fiyatlarla hizmet vermekteyim. Projelerinizi geliştiriyorum. Web App - Mobil App

TEKLİF VER

Popüler Yayınlar

Blogger tarafından desteklenmektedir.

TEKNOLOJİ HABERLERİ

Etiketler

Dikkat! Sitemiz Tüm Hızıyla Yenilenmektedir.

Yararlı Bilgilerden Sizde Yararlanın.
Takipte Kalın...

Yorum ve Görüşleriniz Bizim için Değerlidir.