Pagina de start a forumului Informatica
 FAQ  •  Cautare  •  Membri  •  Grupuri   •  Inregistrare  •  Profil  •  Mesaje private  •  Autentificare
Subiectul urmator
Subiectul anterior
Creaza un subiect nou   Raspunde la subiect  Pagina de start a forumului Informatica » Despre limbajele de programare
Autor Mesaj
Admin
Administrator
Administrator


Data inscrierii: 07/Dec/2013
Mesaje: 1103

MesajTrimis: 12/12/2013 21:17 Raspunde cu citat (quote) Back to top

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) {}
}
Vezi profilul utilizatorului Trimite mesaj privat
Afiseaza mesajele pentru a le previzualiza:   
Creaza un subiect nou   Raspunde la subiect

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