Przesuwanie labela z zmiana tekstu

0

Witam

Chce w javie napisac prosty programik. Sklada sie on z okienka i labela, gdy ruszam myszka po oknie to label ten jest wyswietalny w aktualnej pozycji myszki a jako text ma wlasnie ta pozycje

public class Window extends JFrame implements MouseMotionListener {

    JLabel text;

    public Window() {

       
        setSize(500, 500);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
        addMouseMotionListener(this);
        text = new JLabel();
        add(text);
      
    }

    public void mouseDragged(MouseEvent e) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public void mouseMoved(MouseEvent e) {

        text.setLocation(e.getX(), e.getY());
        text.setText(e.getX() + " " + e.getY());
        
    }
}

Funkcja main tworzy tylko obiekt klasy Window. Powyzszy kod nie dziala w sposob jaki chce.
Label tworzy sie i wyswietla w sobie aktualna pozycje myszki ale nie rusza sie, stoi w miejscu.
Taka obserwacje zauwazylem jezeli zamiast

text.setText(e.getX() + " " + e.getY());

Wpisze

text.setText("jakis tekst"); 

To label przesuwa sie w odpowiedni sposob.
Czy ktos moze wyjasnic mi na czym polega moj blad i wytlumaczyc w jaki sposob to dziala?

Pozdrawiam

0

JLabel się nie poruszał bo zajmował całe okno.

public class Window extends JFrame implements MouseMotionListener {

    JLabel text;

    public Window() {

       
        setSize(500, 500);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(null); //wyłączenie menadżera rozkłądu

        text = new JLabel();
        text.setBounds(0,0,100,80); // położenie i rozmiar
        addMouseMotionListener(this);
        add(text);
        setVisible(true);
     
    }

    public void mouseDragged(MouseEvent e) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public void mouseMoved(MouseEvent e) {

        text.setLocation(e.getX(), e.getY());
        text.setText(e.getX() + " " + e.getY());

    }
}
0

Dzieki teraz smiga :-) Wazne tez bylo ustawienie lauouta na null, bo bez tego nie dzialalo

1 użytkowników online, w tym zalogowanych: 0, gości: 1