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

Responder a