Uvod u rukovanje događajima miša u Javi
Rukovanje događajima miša temeljni je aspekt stvaranja interaktivnih aplikacija u Javi. The java.awt i java.awt.event paketi pružaju potrebne klase i sučelja za učinkovito rukovanje događajima miša.
Kada radimo s događajima miša u Javi, glavne klase i sučelja koje moramo razumjeti su MouseEvent, MouseListeneri MouseMotionListener. Klasa MouseEvent podklasa je klase ComponentEvent i predstavlja radnju miša, kao što je klik na gumb ili pomicanje pokazivača miša. Sučelje MouseListener sadrži metode za rukovanje različitim događajima miša, dok se sučelje MouseMotionListener bavi događajima kretanja miša kao što su povlačenje i pomicanje.
Implementacija dohvaćanja koordinata miša
Implementirajmo jednostavno rješenje za dohvaćanje 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 potrebno java.awt, java.awt.event i javax.ljuljačka paketi.
- Zatim kreiramo klasu tzv Koordinate miša koja se proteže JFrame i provodi MouseMotionListener sučelje. To nam omogućuje rukovanje događajima miša unutar klase.
- Zatim deklariramo JLabel varijablu pod nazivom koordinateOznaka koji će prikazati trenutne koordinate miša.
- U konstruktoru klase MouseCoordinates instanciramo koordinateOznaka i postavite njegov početni tekst. Dodajemo ga u JFrame pomoću BorderLayout.SJEVER poziciju i dodajte slušatelja kretanja miša u JFrame pomoću addMouseMotionListener() metoda.
- Zatim nadjačavamo mouseMoved() metoda iz sučelja MouseMotionListener. Ova metoda se poziva svaki put kada se miš pomakne unutar komponente. Dobivamo x i y koordinate miša pomoću getX() i getY() metode klase MouseEvent i ažurirati tekst koordinateOznaka s novim koordinatama miša.
- Ne zanima nas rukovanje događajima povlačenja mišem u ovom primjeru, pa jednostavno pružamo praznu implementaciju za mouseDragged() metoda.
- Konačno, u glavnoj metodi stvaramo instancu Koordinate miša klase, postavite JFrame svojstva i učinite ga vidljivim korisniku
Uz ovu implementaciju, korisnici sada mogu vidjeti trenutne koordinate miša unutar prozora aplikacije dok pomiču miš. Ovaj članak demonstrira moć Javinih mogućnosti rukovanja događajima i koliko je jednostavno stvoriti interaktivne aplikacije sa samo nekoliko redaka koda.