[MAC323] Exemplo de tratador de mouse
[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

[MAC323] Exemplo de tratador de mouse



Olá

O Tiago preparou outro exemplo AWT interessante (simples e
ilustrativo) para tratamento de mouse, em particular
"cliques" (MouseListener) e "mover" (MouseMotionListener).

Boa diversão,

Leônidas

PS: o exemplo foi para a pg
    http://www.ime.usp.br/~leo/mac323/03-1/material.html#awt_alvo

 --------------------------------------------------------------------------
 Leônidas de Oliveira Brandão  -  Computer Science Dep. of IME-USP (Brazil)
 leo@ime.usp.br - http://www.ime.usp.br/~leo - +55 (011) 3091 [6298 | 6135] 
 Interessado em Matemática?  Visite o "iMatica":   http://www.matematica.br

---------- Forwarded message ----------
Date: Sun, 25 May 2003 19:27:43 -0300
From: Tiago Motta Jorge <tigod@linux.ime.usp.br>
To: Leonidas O Brandao <leo@ime.usp.br>
Subject: Exemplo de tratador de mouse

Professor,

    Estive estudando Java neste final de domingo, em particular AWT, e 
fiz um pequeno programa para brincar com o mouse. Como o código ficou 
bem limpo e claro, talvez fosse interessante colocar no site. É um 
programinha de "alvo".

Atenciosamente,
Tiago Motta Jorge.
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();
	    }
	}
    }
}