[MAC323] Exemplo de tratador de mouse
- Subject: [MAC323] Exemplo de tratador de mouse
- From: Leonidas O Brandao <leo@ime.usp.br>
- Date: Mon, 26 May 2003 10:38:01 -0300 (EST)
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();
}
}
}
}