Da bismo riješili problem dobivanja položaja miša na ekranu u Javi, oslonićemo se na kombinaciju MouseListener i MouseMotionListener interfejsa u java.awt.event paket. Implementacijom ovih interfejsa možemo efikasno pratiti kretanje i radnje miša na ekranu.
import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import javax.swing.JFrame; import javax.swing.JLabel; public class MousePositionTracker extends JFrame implements MouseListener, MouseMotionListener { private JLabel label; public MousePositionTracker() { label = new JLabel("Move the mouse"); add(label); addMouseListener(this); addMouseMotionListener(this); } public static void main(String[] args) { MousePositionTracker frame = new MousePositionTracker(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 400); frame.setVisible(true); } // Mouse events methods }
MouseListeners i MouseMotionListeners
Da bismo pratili kretanje i radnje miša, morat ćemo implementirati MouseListener i MouseMotionListener interfejsi. Ova sučelja definiraju metode koje će se izvršiti kada se dogode određeni događaji miša. Na primjer, the mousePristed metoda se poziva kada se pritisne dugme miša, a mouseDragged Metoda se poziva kada se miš pomera dok se dugme miša drži pritisnuto.
- MouseListener: Pruža metode za rukovanje klikovima mišem, pritiskom i otpuštanjem.
- MouseMotionListener: Pruža metode za rukovanje pokretima miša i povlačenjem.
U našem primjeru, MousePositionTracker class implementira oba ova interfejsa. Klasa se takođe proširuje JFrame, kreiranje grafičkog prozora aplikacije u kojem će se obraditi događaji miša.
Implementacija metoda događaja miša
Jednom MouseListener i MouseMotionListener sučelja su implementirana, sljedeći korak je dodavanje potrebnog koda za rukovanje specifičnim događajima miša.
@Override public void mouseClicked(MouseEvent e) { label.setText("Mouse clicked at (" + e.getX() + ", " + e.getY() + ")"); } @Override public void mouseEntered(MouseEvent e) {}
Ovim metodama obrađujemo MouseEvent objekt proslijeđen kao argument za dohvaćanje informacija o poziciji miša u vrijeme kada se događaj dogodio. Na primjer, u mouseClicked metodom izdvajamo x i y koordinate miša i ažurirati JLabel sa tom informacijom.
Implementacijom ovih metoda i razumijevanjem načina na koji one stupaju u interakciju s vašom aplikacijom, možete kreirati dinamičnije i jednostavnije programe koji odgovaraju na unos korisnika u realnom vremenu. Osim toga, ovladavanje ovim tehnikama uvelike će poboljšati vaše vještine u Javi, grafičkim korisničkim interfejsima i razvoju softvera općenito.