Filehost.ro - gazduire fisiere
Informatica
Programare - Software - Web Design
Nou pe simpatie:
Anne98 pe Simpatie.ro
Femeie
25 ani
Buzau
cauta Barbat
27 - 52 ani
InformaticaInregistrareLoginPozeNu sunteti logat. Lista Forumurilor Pe Tematici
Informatica / Despre limbajele de programare /

Utilizarea mouse-ului

Pagini: 1  
#1
Admin
Administrator
Postari: 315
In Java, miscarea sau actionarea unui buton al mouse-ului pe suprafata unei componente genereaza evenimente de un tip special. Spre deosebire de multe alte limbaje de programare, in Java nu se face distinctie intre butoanele mouse-ului, aceasta pentru a realiza independenta de platforma si de numarul butoanelor mouse-ului recunoscute , care poate fi diferit de la o platforma la alta. Interceptarea si utilizarea acestor evenimente se realizeaza prin intermediul clasei MouseEvent

Clasa MouseEvent
Dintre metodele mai des utilizate amintim :
int getClickCount( )
Returneaza de cate ori a fost actionat un buton al mouse-ului
java.awt.Point getPoint( )
Returneaza coordonatele punctului de pe suprafata componentei la care se gaseste
mouse-ul
boolean isPopupTrigger( )
Specifica daca evenimentul este asociat cu aparitia unui menu popup
int getX( )
int getY( )

In mod uzual, pentru ca evenimente referitoare la mouse generate de o componenta sa fie interceptate, trebuie sa existe un obiect receptor, care sa se inregistreze ca listener la componenta care genereaza evenimentele. Un astfel de obiect receptor trebuie sa implementeze interfetele :
• MouseListener
• MouseMotionListener
De asemenea, obiectul receptor trebuie sa se inregistreze la componenta producatoare de evenimente prin metodele :
• addMouseListener(MouseListener I)
• addMouseMotionListener(MouseMotionListener I)

Definitia interfetei MouseListener

public interface MouseListener extends java.util.EventListener
{
// Metode
public void mouseClicked( java.awt.event.MouseEvent e );
public void mousePressed( java.awt.event.MouseEvent e );
public void mouseReleased( java.awt.event.MouseEvent e );
public void mouseEntered( java.awt.event.MouseEvent e );
public void mouseExited( java.awt.event.MouseEvent e );
}

Definitia interfetei MouseMotionListener

pbublic interface MouseMotionListener extends java.util.EventListener
{
// Metode
public void mouseDragged( java.awt.event.MouseEvent e );
public void mouseMoved( java.awt.event.MouseEvent e );
}

Asadar, structura generala a unei componente care genereaza evenimente referitoare la mouse care necesita prelucrare este :
class Componenta {
//...
Receptor r = new Receptor();
this.addMouseListener(r);
this.addMouseMotionListener(r);
//...
}

class Receptor implements MouseListener, MouseMotionListener {
//...
//Metodele interfetei MouseListener
//...
//Metodele interfetei MouseMotionListener
//...
}

Exemplu :
• la apasarea mouse-ului : deseneaza un cerc
• la eliberare : deseneaza un patrat
• la executarea operatiei drag : deseneaza traiectoria mouse-ului
import java.awt.*;
import java.awt.event.*;
public class TestMouse {
public static void main(String argsst) {
Fereastra f = new Fereastra("Test Mouse";
Desen d = new Desen();
d.setSize(new Dimension(400, 400));
f.add(d);
f.pack();
f.show();
}
}
class Desen extends Canvas implements MouseListener, MouseMotionListener {
Point prev;
public Desen() {
this.addMouseListener(this);
this.addMouseMotionListener(this);
}

public void paint(Graphics g) {}

//metodele interfetei MouseListener
public void mouseClicked(MouseEvent e) {}
public void mousePressed(MouseEvent e) {
prev = e.getPoint();
int x = (e.getPoint()).x;
int y = (e.getPoint()).y;
Graphics g = getGraphics();
g.drawOval(x-5, y-5, 10, 10);
setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
}
public void mouseReleased(MouseEvent e) {
int x = (e.getPoint()).x;
int y = (e.getPoint()).y;
Graphics g = getGraphics();
g.drawRect(x-5, y-5, 10, 10); setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}

//metodele interefetei MouseMotionListener
public void mouseDragged(MouseEvent e) {
int x1 = prev.x;
int y1 = prev.y;
int x2 = (e.getPoint()).x;
int y2 = (e.getPoint()).y;
prev = e.getPoint();
Graphics g = getGraphics();
g.drawLine(x1, y1, x2, y2);
}
public void mouseMoved(MouseEvent e) {}
}

class Fereastra extends Frame implements WindowListener {
public Fereastra(String titlu) {
super(titlu);
this.addWindowListener(this);
}
//metodele interfetei WindowListener
public void windowOpened(WindowEvent e) {}
public void windowClosing(WindowEvent e) {System.exit(0);}
public void windowClosed(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
}


 
   
Pagini: 1  
Mergi la