Raton.java



//DEMO DE RATON Y GRAFICOS

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

// Prototipo de una aplicacion de ventana
// 1.-	Se crea la clase que extienda a la clase Frame, JFrame o Window
public class Raton extends JFrame
{
	int X1, Y1, X2, Y2;
	boolean Primero;
	Graphics GGG;

	public Raton ()
	{
		X1 = X2 = Y1 = Y2 = 0;
		Primero = true;
		this.getContentPane().setLayout(null);		// Contenedor nulo
		this.setTitle("USO DEL RATON");			// Titulo de la ventana
		this.setResizable(false);			// No es redimensionable
		this.setLocation(100, 100);			// Posicion desde la esquina superior izquierda del monitor
		this.setSize(new Dimension(600, 350));		// Dimensiones

		setBackground(Color.blue);
		addMouseListener(new RATON());
		setVisible(true);				// 2.-	Se muestra la ventana
	}

	public static void main(String R[]) { new Raton(); }

	// 3.-	Captura del evento "cerrar ventana"
	protected void processWindowEvent(WindowEvent e)
	{
		super.processWindowEvent(e);
		if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); }
	}

	public void paint(Graphics G)
	{
		GGG = G;
		G.setColor(Color.yellow);
		if(!Primero) G.fillOval(X1, Y1, 5, 5);
		else if (X2!=0 && Y2!=0 && X1!=0 && Y1!=0)
		{
			G.drawLine(X1, Y1, X2, Y2);
			G.fillOval(X2, Y2, 5, 5);
		}
	}


	class RATON implements MouseListener
	{
		Point PUNTO;

		public void mouseClicked(MouseEvent DATOS_DEL_EVENTO)
		{
			PUNTO = DATOS_DEL_EVENTO.getPoint();
			if (Primero)
			{
				X1 = (int)PUNTO.getX();
				Y1 = (int)PUNTO.getY();
				Primero = false;
				repaint();
			}
			else
			{
				X2 = (int)PUNTO.getX();
				Y2 = (int)PUNTO.getY();
				repaint();
				Primero = true;
			}
		}
		public void mouseEntered(MouseEvent e){}
		public void mouseExited(MouseEvent e){}
		public void mousePressed(MouseEvent e){}
		public void mouseReleased(MouseEvent e){}
	}
}