Mehmet Ethem SULAN :: Java Programlama Dili :: Javada Fare Olayları(MouseListener-mouseClicked,mouseEntered,mouseExited,mousePressed,mouseReleased) Örneği

public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent arg0) {}
public void mouseExited(MouseEvent arg0) {}
public void mousePressed(MouseEvent arg0) {}
public void mouseReleased(MouseEvent arg0) {}

Eğer MouseListener implement ediyorsak yukardaki metodların hepsini kullanmasak bile göründüğü gibi tanımlamamız lazım.Tanımlayıp içini boş bırakacaz.

package www.ethemsulan.com;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class MousEnterExit extends
  JFrame implements MouseListener{
  JLabel lb;
  public MousEnterExit(){
    lb=new JLabel();
    this.addMouseListener(this);
    lb.setBounds(10, 20, 90, 30);
    this.add(lb);
  }
public static void main(String[] args) {
MousEnterExit obj=new MousEnterExit();
    obj.setSize(300, 200);
    obj.show();
    
  }
public void mouseClicked(MouseEvent e) {
//Farenin tiklanmasiyla olay tetiklenir.
    
  }
public void mouseEntered(MouseEvent arg0) {
//Farenin ilk o nesnenin kordinatlarina girdigi
//an anlamina geliyor.Nesne uzerine
//geldigi an bu olay tetiklenir.
  lb.setText("Mouse forma girdi");
    }
public void mouseExited(MouseEvent arg0) {
//Fare nesnein kordinatlarindan ayrildigi
//anda tetiklenen olaydir.
lb.setText("Mouse formdan ayrildi");
  }
public void mousePressed(MouseEvent arg0) {
//Bu farenin tusuna basili olmakla alakali bir sey.
//tusa basili oldugu surece bu olay tetiklenmistir
//yani devrededir olay algilayicimiz.mouseClicked
//tiklaninca devreye gi,riyor ama burda
//basili oldugu surece devrededir.
    
  }
public void mouseReleased(MouseEvent arg0) {
//Elimizi farenin tusundan cektigimiz anda calisan olaydir.
//mousePressed ve mouseClicked olaylarindan sonra calisir.
  }
}

Orj Code:http://ethemsulan.pastebin.com/f5204d6cd

Daha önceki kodlarda form tanımlamayı gösterdim.Aslında JFrame isiminde java da tanımlanmış bir sınıf var biz sadece o sınıftan kalıtım alarak o sınıfa ait metodlarını kullanabilecez.Daha önceki örneklerimde form nasıl tanımlandığını uzun uzun anlatmamın sebei arka planda neler döndüğünü anlamamız için.Tamam her şey hazır var kullanıyoruz ama yapısını bilmeden de pek sağlıklı olmuyor.Şuna da dikkat edin gene boyutlandırma va formun görünmesi için formismi.Show() metodlarını main() içinde kullanmamız lazım.

public class MousEnterExit extends JFrame implements MouseListener{} burada hem kalıtım hem de implement var.Burada kalıtımı açıklamıyacam sadece bizim kullandığımız kadaına değinecem.

x extends y –>x ve y ya ikisi de class ya da ikisi de interface ise doğrudur. Bir de x abstract class ve y interface olabilir.x implements y –>x class ve y interface olmak zorundadir.  Eğer interface de bazi metorlar varsa o zmaan x abstract olmak zorundadır.

Jlable nin tanımlandığı yere dikkat edin.Eğer main() içerisinde tanımlarsanız MouseEvent metodlarında kullanamazsınız.Biz yapıcının içinde Jlabel tanımlayıp boyutlarını atadık ve this.add(lb); ile forma ekledik.

public void mouseEntered(MouseEvent arg0) {

    lb.setText(“Mouse forma girdi”);

        }

public void mouseExited(MouseEvent arg0) {

lb.setText(“Mouse formdan ayrildi”);

    }

Bu metodlarda da gerçekleşen olay karşısında ne yapılmasını gerektiğni yazdık.Basitçe göstermek için ben formun üzerine mouse geldiğinde “mouse forma girdi” ve ayrılınca da “mouse formdan ayrıldı” jlabel aracılığıyla formda göstermesini sağladım.Daha önce swing e ait bir çok bileşenleri tanımladım şimdi bu bileşenlerden mantıklı bir veri elde edebilmemiz için onlarda gerçekleşen olayları yönetmemiz lazım. Yani bileşenleri birbirleriyle ilşkilendirecez ve gerçekleşmesi istediğimiz olayları yönetecez.Örneğin daha önce kullanıcı bilgilerini alan bir fom tanımlamıştım şimdi formun altına da bir button ekleyip kaydet isminde button tıklandığında bilgileri veritabanımıoza kaydetmesini sağlayabiliriz.Ama veritabanına burada girmiyecem .Mümkün oldukça anlaşılması için kodları sade ve az yazıyorum ki mantık anlaşılsın.Anlaşıldıktan sonra zaten ne yapmak istersek yapabilecez.

Comments

There is one comment for this post.

  1. siyah on Ağustos 7, 2014 11:05 pm

    Şu kodu gözünü seveyim iki dk script eklede kod şeklinde paylaş böyle ne gözüküyo ne anlıyom beyaz beyaz

Write a Comment

Let me know what you think?