mouseReleased 是从按下到放开的一个事件,针对mousePressed的对应动作可能是mouseUp而不是mouseReleased,如果你不用mousePressed的时候看看mouseReleased是否有用!试试吧

解决方案 »

  1.   

    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;
    //<applet code="MouseEvents.class" width="200" height="200"></applet>
    public class MouseEvents extends Applet
        implements MouseListener,MouseMotionListener {
      String msg="";
      int mouseX=0,mouseY=0;
      public void init() {
        addMouseListener(this);
        addMouseMotionListener(this);
      }
      public void mouseClicked(MouseEvent me) {
        //mouseX=0;
        //mouseY=10;
        //msg="Mouse clicked.";
        //System.out.println("Mouse clicked.");
        //repaint();
      }
      public void mouseEntered(MouseEvent me) {
        mouseX=0;
        mouseY=10;
        msg="Mouse entered.";
        repaint();
      }
      public void mouseExited(MouseEvent me) {
        mouseX=0;
        mouseY=10;
        msg="Mouse exited.";
        repaint();
      }
      public void mousePressed(MouseEvent me) {
        mouseX=me.getX();
        mouseY=me.getY();
        msg="Down";
        repaint();
      }
      public void mouseReleased(MouseEvent me) {
        mouseX=me.getX();
        mouseY=me.getY();
        msg="UP";
        repaint();
      }
      public void mouseDragged(MouseEvent me) {
        mouseX=me.getX();
        mouseY=me.getY();
        msg="*";
        showStatus("Dragging mouse at"+mouseX+", "+mouseY);
        repaint();
      }
      public void mouseMoved(MouseEvent me) {
        showStatus("Moving mouse at"+me.getX()+", "+me.getY());
      }
      public void paint(Graphics g) {
        g.drawString(msg,mouseX,mouseY);
      }
    }
    //我在你的源程序中mouseClicked函数置空,你再运行一下就知道其中的理由了
    //这时你就可以看到mouseUp事件了,原因是:
    //当你单击鼠标右键时,先产生mouseDown事件,然后是mouseUp,最后是mouseClicked
    //你看不到是由于mouseUp与mouseClicked事件之间没有一个很长的时间间隔,可以让你看到屏幕的变化,mouseClicked的事件显示迅速重新刷新了mouseUp的事件显示,所以造成了你没有看到mouseUp事件的假象
      

  2.   

    cowboy1114(傻牛) 说的对,mouseClicked事件改变了mouseUp事件的显示。
      

  3.   

    mouseReleased 是从按下到放开的一个事件,针对mousePressed的对应动作可能是mouseUp而不是mouseReleased,如果你不用mousePressed的时候看看mouseReleased是否有用!
    多到google去看看这方面地资料很多地
      

  4.   

    不好意思,回帖的时候把mouseReleased错写成mouseUp了,现更正。