不存在jpmain接受事件啊?
在实现listener的接口中加入关于jpmain的响应代码不就可以吗?!

解决方案 »

  1.   

    我在jpmain中加了addMouseListener(new java.awt.event.MouseAdapter() {...});
    但他没有执行(鼠标click 在imgcanvas 上时)但click其它地方就执行了。事实上我的jpmain 上除了imgcanvas外还有其他控件(jlabel),click imgcanvas以外的地方jpmain才会处理!有没有办法click imgcanvas是jpmain 也能处理?
      

  2.   

    把关于jpmain的响应代码放入imgcanvas的addMouseListener()中试一试!
      

  3.   

    jp和jpmain指向同一个事件源即可。
      

  4.   

    应该这样:jpmain.addMouseListener(this);
    在jpmain的actionPerformed函数中这样处理:
    Object target = e.getSource();
    if(target instanceof ImageCanvas)
    {
        //调用ImageCanvas的相关函数
    }这样就行啦,这牵扯到多级事件分发,我也遇到过。
      

  5.   

    把关于jpmain的响应代码放入imgcanvas的addMouseListener()中试一试?
    jpmain的响应代码需要mouseEvent的位置。imgcanvas得到的位置和jpmain得到的mouse position 不一样!
    jp和jpmain指向同一个事件源即可。 看不明白,该怎么做?
      

  6.   

    把关于jpmain的响应代码放入imgcanvas的addMouseListener()中试一试?
    jpmain的响应代码需要mouseEvent的位置。imgcanvas得到的位置和jpmain得到的mouse position 不一样!
    jp和jpmain指向同一个事件源即可。 看不明白,该怎么做?
      

  7.   

    to QDog(Q狗) :
    你的意思是否要把jpmain的处理代码加到imgcanvas中?多级事件分发好像与我的问题有关,有没有source 给我看看。
      

  8.   

    Qdog说得清楚,在实现mouselistener接口中,用事件源分别隔离jpmain河imgcanvas的代码,一般说来,在java和MFC的事件处理机制不同,我以为在JAVA的一个窗口中,只有一个MOUSELISTENER接口类。你可以参考比如在一个对话框中OK BUTTON和CANCEL BUTTON的ACTION的事件处理。(许多教科书上就有)
      

  9.   

    对不起,忽略了一个问题,记得实现一个接口,就可以分发多个事件,好像是listenerList.
    手上没有现成资料,待我查后复你。
      

  10.   

    对不起,前两天回家了。
    查过jdk文档和一些资料,没有找到能解决的办法。eventListenerList只是建立听众列表,对你可能帮助不大。
    也许你还是因该在一个listener接口中实现他们的mouseMove响应代码。你说的imgcanvas和jpmain得坐标不同的问题,我想可以在IF...ELAE...中进行转换,要不,全转换成窗口德坐标,
    应该可以实现。我也想写一个类试的程序测试一下,可惜这几天没有时间,祝你成功!
      

  11.   

    谢谢goulin的tip,但我想这样做使代码难于维护,有没有办法让他自动传到下一个控件去处理?如果我不能改变imagecanvas处理mouseEvent的代码,又希望jpmain,imagecanvas都能处理到该事件,要怎么做?
      

  12.   

    I want to give points to Qdog, goulin, robber, but it always return an error, Qdog can not receive points.