3 Şubat 2011 Perşembe

Java Applet: MouseListener

Java Applet'de mouse listener olaylarını inceleyelim. Mouse Listener default olarak gelen ve bulunması zorunlu olan bir kaç fonksiyon içeriyor. Bunlar; mouseClicked, mousePressed, mouseReleased, mouseEntered, mouseExited. İngilizcelerinden de anlaşılacağı üzere mouse'un hangi olaya tepki vermesini istiyorsak, o fonksiyonun içini dolduruyoruz.

Mouse listener olaylarını örneklendirecek olursak; sabit bir applet boyu oluşturalım. İçerisine dikdörtgen şekli çizelim. Applet sınırlarına faremiz ile gelindiğinde ve Applet içinde olduğumuzda, panelde "mouse applet içinde" yazdıralım, fare ile Applet dışına çıktığımızda ise "mouse applet dışında" yazdıralım. Applet'de herhangi bir yere tıkladığımızda, tıklanan koordinat mouseClicked fonksiyonu içerisinde yazılan kod ile alınıp, Applet'e yazdırılsın.

Bu örneğin Java kodu aşağıdaki gibidir.

import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class MouseClickTesting extends Applet implements MouseListener
{
 int xcoor;
 int ycoor;
 int rectxcoor,rectycoor,rectwidth,rectheight;
 boolean mouseEnter;
 boolean rectClick;
 
 public void init() 
 {
  rectxcoor = 20;
  rectycoor = 20;
  rectwidth = 100;
  rectheight = 50;
  addMouseListener(this);
 }
 
 public void paint(Graphics g) 
 {
  this.resize(500, 300);
  g.setColor(Color.red);
  g.fillRect(rectxcoor,rectycoor,rectwidth,rectheight);
  g.setColor(Color.black);
  g.drawString("("+xcoor+","+ycoor+")",xcoor,ycoor);
  if (rectClick) g.drawString("Dikdörtgen icine tikladiniz",20,120);
  else g.drawString("Dikdörtgen disina tikladiniz",20,120);
  
  if (mouseEnter) g.drawString("Mouse applet icinde",20,160);
  else g.drawString("Mouse applet disinda",20,160);
 }
public void mouseClicked (MouseEvent me) {
 xcoor = me.getX();
 ycoor = me.getY();
  if (xcoor > rectxcoor && xcoor < rectxcoor+rectwidth && ycoor >rectycoor && ycoor < rectycoor+rectheight) 
   rectClick = true;
    else 
     rectClick = false;
 
  repaint();
 }
 public void mousePressed (MouseEvent me) {}
 public void mouseReleased (MouseEvent me) {}
 public void mouseEntered (MouseEvent me) {
  mouseEnter = true;
  repaint();
 }
 public void mouseExited (MouseEvent me) {
  mouseEnter = false;
  repaint();
 }
}  
  

Kolay gelsin.

0 yorum:

Yorum Gönder