本帖最后由 v5_6000 于 2011-03-01 21:36:46 编辑

解决方案 »

  1.   

    是这样,你可以试着在paint方法中打印一下看看它被调用了几次
    实际上,开始调用了两次paint,以后每点击鼠标一次因为repaint的关系又会调用paint,
    每次调用paint,都是增加一个新的鼠标监听者对象,因此MousePressed方法会
    2,3,4,5...这样随点击次数递增至于第一次为什么是两次paint,我猜初始化时一次,还可能包含一个由最小化恢复到正常状态的过程,都要paint一下,不过这个倒不是与问题相关最重要的
      

  2.   

    如何能只调用一次mousePressed()方法呢?
    =====
    不要放paint里,最好放在一次执行的环境中比如init等
      

  3.   

    问题解决,非常感谢!import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;public class MouseOperationsByEvent extends Applet
    {
    public void init() {
        MouseListener mdListener = new MouseAdapter(){
    //处理鼠标点击事件
    public void mousePressed(MouseEvent e) {
    System.out.println("------");
    repaint();
    }
    };

    MouseMotionListener mmListener = new MouseMotionAdapter() {
    // 鼠标移动事件
    public void mouseMoved(MouseEvent e) {
    System.out.println("====");
    repaint();
    }
    };

    addMouseListener(mdListener);
    addMouseMotionListener(mmListener);
      } public void paint(Graphics g)
    {

      }
    }
      

  4.   

    请教一下“试着在paint方法中打印一下看看它被调用了几次”。
    鼠标是个事件监听,不是直接调用。还要在paint方法中来计数。这个事情怎么做?你说的2次是怎么来的?
      

  5.   

    调用几次就是打印一下
    System.out.println("xx");