// Paweł Rzechonek (c) November 2005
// okno AWT: śledzenie kursora myszy
// (komponenty interfejsu graficznego: Canvas)
// (menadżer rozkładu: BorderLayuot)
// (obsługa zdarzeń myszy: MouseAdapter, MouseMotionListener)

import java.awt.*;
import java.awt.event.*;

class Pole extends Canvas
{
    class ZdarzeniaMyszy extends MouseAdapter implements MouseMotionListener
    {
        public void mouseEntered (MouseEvent ev)
        {
            opis.setText(ev.getX()+" x "+ev.getY());
        }
        public void mouseExited (MouseEvent ev)
        {
            opis.setText("-");
        }
        public void mouseDragged (MouseEvent ev)
        {
            mouseEntered(ev);
        }
        public void mouseMoved (MouseEvent ev)
        {
            mouseEntered(ev);
        }
    }

    Label opis;

    public Pole (Label op)
    {
        opis = op;
        ZdarzeniaMyszy mysz = new ZdarzeniaMyszy();
        addMouseListener(mysz);
        addMouseMotionListener(mysz);
    }

    public void paint(Graphics gr)
    {
        gr.setColor(Color.RED);
        gr.drawRect(0,0,getWidth()-1,getHeight()-1);
    }
}

public class KursorMyszy extends Frame
{
    protected Label opis = new Label("-");

    public KursorMyszy ()
    {
        super("śledzenie współrzędnych kusrora myszy");
        addWindowListener(new WindowAdapter()
        {
            public void windowClosing (WindowEvent ev)
            {
                KursorMyszy.this.dispose();
            }
        });
        add(opis,BorderLayout.SOUTH);
        add(new Pole(opis),BorderLayout.CENTER);
        setSize(480,360);
        setLocation(120,60);
        setVisible(true);
    }

    public static void main (String[] arg)
    {
        new KursorMyszy();
    }
}
