Utilizarea mouse-ului In Java, mi[carea sau ac]ionarea unui buton al mouse-ului pe suprafa]a unei componente genereaz\ evenimente de un tip special. Spre deosebire de multe alte limbaje de programare, in Java nu se face distinc]ie intre butoanele mouse-ului, aceasta pentru a realiza independen]a de platform\ [i de num\rul butoanelor mouse-ului recunoscute , care poate fi diferit de la o platform\ la alta. Interceptarea [i utilizarea acestor evenimente se realizeaz\ prin intermediul clasei MouseEvent Clasa MouseEvent Dintre metodele mai des utilizate amintim : int getClickCount( ) 52547kcq37iqg2g Returneaz\ de cate ori a fost ac]ionat un buton al mouse-ului java.awt.Point getPoint( ) Returneaz\ coordonatele punctului de pe suprafa]a componentei la care se g\se[te mouse-ul cq547k2537iqqg boolean isPopupTrigger( ) Specific\ dac\ evenimentul este asociat cu apari]ia unui menu popup int getX( ) int getY( ) In mod uzual, pentru ca evenimente referitoare la mouse generate de o component\ s\ fie interceptate, trebuie s\ existe un obiect receptor, care s\ se inregistreze ca listener la componenta care genereaz\ evenimentele. Un astfel de obiect receptor trebuie s\ implementeze interfe]ele : MouseListener MouseMotionListener De asemenea, obiectul receptor trebuie s\ se inregistreze la componenta produc\toare de evenimente prin metodele : addMouseListener(MouseListener I) addMouseMotionListener(MouseMotionListener I) Defini]ia interfe]ei 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 ); } Defini]ia interfe]ei MouseMotionListener
public interface MouseMotionListener extends java.util.EventListener { // Metode public void mouseDragged( java.awt.event.MouseEvent e ); public void mouseMoved( java.awt.event.MouseEvent e ); } A[adar, structura general\ a unei componente care genereaz\ evenimente referitoare la mouse care necesit\ 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 ap\sarea mouse-ului : deseneaz\ un cerc la eliberare : deseneaz\ un p\trat la executarea opera]iei drag : deseneaz\ traiectoria mouse-ului import java.awt.*; import java.awt.event.*; public class TestMouse { public static void main(String args[]) { 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) {} }