import java.awt.event.WindowEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseMotionAdapter;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Frame;

public class Alvo extends Frame {
    private int x = -100;
    private int y = -100;
    private boolean iniciado;
    private final int height = 500;
    private final int width = 300;
   
    public Alvo() {
	super("Alvo v0.0.1");

	iniciado = false;

	setBackground(Color.black);

	addMouseListener(new OuvidorDoMouse());
	addMouseMotionListener(new OuvidorDoMovDoMouse());
	addWindowListener(
	    new WindowAdapter() {
	        public void windowClosing(WindowEvent e) {
		    System.exit(0);
	        }
	    }
        );

	setSize(height, width);
	show();
    }

    public void paint(Graphics g) {
	int newHeight = getSize().height;
	int newWidth = getSize().width;

	g.setColor(Color.red);

	g.drawLine(x, 0, x, newHeight); // linha vertical
	g.drawLine(0, y, newWidth, y); // linha horizontal

	g.drawOval(x - 10, y - 10, 20, 20); // reticulo

	g.drawString("[" + x + "," + y + "]", x + 10, y + 22); // coordenadas
    }

    public static void main(String[] args) {
	new Alvo();
    }

    private class OuvidorDoMouse extends MouseAdapter {

	public void mouseClicked(MouseEvent e) {
	    if (!iniciado) {
		x = e.getX();
		y = e.getY();
		
		repaint();
		
		iniciado = true;
	    } else {
		iniciado = false;
	    }
	}
    }

    private class OuvidorDoMovDoMouse extends MouseMotionAdapter {

	public void mouseMoved(MouseEvent e) {
	    if (iniciado) {
		x = e.getX();
		y = e.getY();
		
		repaint();
	    }
	}
    }
}
