Uvod u rukovanje događajima miša u Javi
Obrada događaja miša je fundamentalni aspekt kreiranja interaktivnih aplikacija u Javi. Paketi java.awt i java.awt.event pružaju potrebne klase i interfejse za efikasno rukovanje događajima miša.
Kada radimo s događajima miša u Javi, glavne klase i interfejsi koje moramo razumjeti su MouseEvent , MouseListener i MouseMotionListener . Klasa MouseEvent je podklasa klase ComponentEvent i predstavlja radnju miša, kao što je klik na dugme ili pomicanje pokazivača miša. Interfejs MouseListener sadrži metode za rukovanje različitim događajima miša, dok se interfejs MouseMotionListener bavi događajima kretanja miša kao što su prevlačenje i pomicanje.
Implementacija dohvaćanja koordinata miša
Hajde da implementiramo jednostavno rešenje za preuzimanje koordinata miša u Javi.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MouseCoordinates extends JFrame implements MouseMotionListener {
JLabel coordinatesLabel;
public MouseCoordinates() {
coordinatesLabel = new JLabel("Mouse coordinates: ");
add(coordinatesLabel, BorderLayout.NORTH);
addMouseMotionListener(this);
}
@Override
public void mouseMoved(MouseEvent e) {
int x = e.getX();
int y = e.getY();
coordinatesLabel.setText("Mouse coordinates: (" + x + ", " + y + ")");
}
@Override
public void mouseDragged(MouseEvent e) {}
public static void main(String[] args) {
MouseCoordinates frame = new MouseCoordinates();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setVisible(true);
}
}
Korak po korak objašnjenje koda
- Prvo uvozimo ono što je potrebno java.awt, java.awt.event i javax.swing paketi.
- Zatim kreiramo klasu pod nazivom MouseCoordinates to se proteže JFrame i implementira MouseMotionListener interfejs. Ovo nam omogućava da rukujemo događajima miša unutar klase.
- Zatim deklariramo varijablu JLabel pod nazivom координатiLabel koji će prikazati trenutne koordinate miša.
- U konstruktoru klase MouseCoordinates instanciramo координатiLabel i postavite njegov početni tekst. Dodamo ga u JFrame koristeći BorderLayout.NORTH pozicionirajte i dodajte prisluškivač pokreta miša u JFrame pomoću addMouseMotionListener() metoda.
- Zatim poništavamo mouseMoved() metoda iz MouseMotionListener interfejsa. Ova metoda se poziva kad god se miš pomjeri unutar komponente. Dobijamo x i y koordinate miša koristeći getX() i getY() metode klase MouseEvent i ažurirati tekst координатiLabel sa novim koordinatama miša.
- Nismo zainteresirani za rukovanje događajima povlačenja mišem u ovom primjeru, tako da jednostavno pružamo praznu implementaciju za mouseDragged() metoda.
- Konačno, u glavnoj metodi, kreiramo instancu MouseCoordinates klase, postavite JFrame svojstva i učinite ih vidljivim korisniku
Sa ovom implementacijom, korisnici sada mogu vidjeti trenutne koordinate miša unutar prozora aplikacije dok pomiču miša. Ovaj članak pokazuje snagu Java-inih mogućnosti upravljanja događajima i koliko je lako kreirati interaktivne aplikacije sa samo nekoliko linija koda.