 |
| Autor |
Mesaj |
Admin
Administrator

Data inscrierii: 07/Dec/2013
Mesaje: 1103
|
In Java, miscarea sau actionarea unui buton al mouse-ului pe suprafata unei componente genereaza evenimente de un tip special. Spre deosebire de numeroase 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 întrebuințarea 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) {}
} |
|
|
|
|
 |
|
|
|
|
Subiectul urmator
Subiectul anterior
Nu puteti crea un subiect nou in acest forum Nu puteti raspunde in subiectele acestui forum Nu puteti modifica mesajele proprii din acest forum Nu puteti sterge mesajele proprii din acest forum Nu puteti vota in chestionarele din acest forum |
Powered by phpBB
© 2001, 2002 phpBB Group
|
|