import javax.swing.*;
import java.awt.*; import java.awt.event.*;

public class Mouse extends JFrame {
    private Image buffer;
    private JComponent comp;
    private Graphics gBuff;

    Mouse() {
        setSize(500,500);
        setVisible(true);
        buffer = createImage(500,500);
        gBuff  = buffer.getGraphics();
        gBuff.setColor(Color.orange);
        gBuff.fillRect(0,0,500,500);
        comp = new MyComponent();
        comp.addMouseListener(new MyMouseListener());
        add(comp);
    }
    class MyMouseListener extends MouseAdapter {
        public void mouseClicked(MouseEvent e) {
            int x = e.getX(); int y = e.getY();
            System.out.println("x:"+x+",y:"+y);
            gBuff.setColor(Color.blue);
            gBuff.fillOval(x-5,y-5,10,10);
            repaint();
        }
    }
    class MyComponent extends JComponent {
        public void paintComponent(Graphics page) {
            page.drawImage(buffer,0,0,500,500,null);
        }
    }
    public static void main(String args[]) {
        SwingUtilities.invokeLater(() -> new Mouse());
    }
}
