Para interceptar e gerenciar eventos de movimenta�ao de mouse, use os
metodos mouseDrag() e mouseMove().
O metodo mouseMove(), para tratamento de movimentos puros do ponteiro
do mouse,sem que o botao seja pressionado, e muito semelhante aos
metodos de clique de mouse;
public boolean mouseMove(Event evt, int x, int y){
//..
}
O metodo mouseDrag() trata de movimentos de mouse feitos com o botao
pressionado;
public boolean mouseDrag(Event evt, int x, int y){
//..
}
Observe que, para os metodos acima citados, os arqumentos das
coordenadas x e y representam a nova posicao do mouse e nao sua posicao inicial.
Os metodos mouseEnter() e mouseExit() sao chamados quando o ponteiro do
mouse entra ou sai de um applet. Esse dois metodos possuem assinaturas
semelhantes aos metodos de clique de mouse. Eles tem tres argumentos: o objeto
evento e as coordenadas x e y do ponto em que o mouse entrou ou saiu do applet;
public boolean mouseEnter(Event evt, int x, int y){
//......
}
public boolean mouseExit(Event evt, int x, int y){
//......
}
Segue atachado um exemplo de applet que permite desenhar linhas retas na
tela arrastando-se do ponto inicial ao ponto final
Abs
JR
______________________________ Reply Separator _________________________________
Subject: mouse position
Author: "Nil Inacio Santos" <[EMAIL PROTECTED]> at INTERNET
Date: 11/06/99 10:36
Caros colegas,
Alguem sabe como - e se e' possivel - conseguir a posicao do mouse em
dado momento ?
Melhor explicando: Tenho uma thread que deve ser constantemente
atualizada com a posicao do mouse, mesmo quando o mesmo nao estiver em cima
do painel - pois, neste caso, eu usaria mouseMoved(MouseEvent evt) - .
Grato,
Nil Inacio Santos
* Para nao receber mais e-mails da lista, acesse
<http://www.sun.com.br:8080/guest/RemoteAvailableLists>, coloque seu e-mail,
escolha a lista <[EMAIL PROTECTED]> e de um <submit>.
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Event;
import java.awt.Point;
public class Lines extends java.applet.Applet {
final int MAXLINES = 10;
Point starts[] = new Point[MAXLINES]; // starting points
Point ends[] = new Point[MAXLINES]; // endingpoints
Point anchor; // start of current line
Point currentpoint; // current end of line
int currline = 0; // number of lines
public void init() {
setBackground(Color.white);
}
public boolean mouseDown(Event evt, int x, int y) {
if (currline < MAXLINES) {
anchor = new Point(x,y);
return true;
}
else {
System.out.println("Too many lines.");
return false;
}
}
public boolean mouseUp(Event evt, int x, int y) {
if (currline < MAXLINES) {
addline(x,y);
return true;
}
else return false;
}
public boolean mouseDrag(Event evt, int x, int y) {
if (currline < MAXLINES) {
currentpoint = new Point(x,y);
repaint();
return true;
}
else return false;
}
void addline(int x,int y) {
starts[currline] = anchor;
ends[currline] = new Point(x,y);
currline++;
currentpoint = null;
anchor = null;
repaint();
}
public void paint(Graphics g) {
// Draw existing lines
for (int i = 0; i < currline; i++) {
g.drawLine(starts[i].x, starts[i].y,
ends[i].x, ends[i].y);
}
// draw current line
g.setColor(Color.blue);
if (currentpoint != null)
g.drawLine(anchor.x,anchor.y,
currentpoint.x,currentpoint.y);
}
}
<applet code="Lines.class" height=250 width=250>
</applet>
lines~1.cla