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


Data inscrierii: 07/Dec/2013
Mesaje: 44

 Mesaj Trimis: 17/01/2017 18:02    Titlul subiectului: Folosirea mouse-ului
Raspunde cu citat (quote)

In Java, miscarea sau actionarea unui buton al mouse-ului pe suprafata unei ingrediente 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) {}
}
 Sus »
Vezi profilul utilizatorului Trimite mesaj privat
Afiseaza mesajele pentru a le previzualiza:   
Pagina de start a forumului  » Despre limbajele de programare  » Utilizarea mouse-ului
Creaza un subiect nou   Raspunde la subiect Ora este GMT + 2 ore
Pagina 1 din 1

 
Mergi direct la:  
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
Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro