Riješeno: java dobije koordinate miša

Posljednje ažuriranje: 06/19/2023

dobiti koordinate miša U ovom članku ćemo raspravljati o tome kako dobiti koordinate miša unutar Java programa. Rukovanje događajima miša i dobijanje njihovih koordinata je ključni zadatak u izgradnji interaktivnih aplikacija i korisničkih interfejsa. Prvo ćemo pogledati osnove rukovanja događajima miša i različite uključene biblioteke, nakon čega slijedi korak po korak prolazak koda kako bismo postigli ovaj zadatak.

Uvod u rukovanje događajima miša u Javi

Rukovanje događajima mišem je osnovni aspekt kreiranja interaktivnih aplikacija u Javi. The java.awt i java.awt.event paketi obezbeđuju neophodne klase i interfejse za efikasno rukovanje događajima miša.

Kada radite sa događajima miša u Javi, glavne klase i interfejsi koje treba da razumemo su MouseEvent, MouseListener, I MouseMotionListener. Klasa MouseEvent je potklasa klase ComponentEvent i predstavlja radnju miša, kao što je klik na dugme ili pomeranje pokazivača miša. Sučelje MouseListener sadrži metode za rukovanje različitim događajima miša, dok MouseMotionListener sučelje se bavi događajima pokreta 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.

Slični postovi: