在一个程序中,给JLabel增加一个mouseReleased方法。
public void mouseReleased(MouseEvent a)
{
    System.out.println("x");
    new PicDialog(father,StaticClass.workspacepath+"\\WorkSpace\\Stress.png");
}
就是创建一个显示图片的JDialog。但是每次都会弹出两个窗口。输出两个xx。
注意:随便点击多少次,反正每次点击,这个方法都会被调用两次。
求大神解释下原因以及解决方法。。

解决方案 »

  1.   

    我在PicDialog里面的设置是:
    this.setModal(true).
    在这个窗口没关闭之前。整个程序是被阻塞了的。
    所以无论点击多少次,都没有影响。。
    所以,应该不是鼠标的问题。
    在网上看到一次帖子,说在mouseReleased()执行之后
    会有2种情况的跳跃。一种跳到了Component.class下的processMouseEvent方法,另一种跳到了AWTEventMulticaster.class下的mouseReleased方法,其中第二种方法会导致mousereleased这个事件被重复调用
    但是不知道解决办法