JPanel的鼠标事件监听器,如果有多个JPanel,怎么不能内层处理完后,没有向上传递呢,
比如:
JPanel p1;
JPanel p2;
p2是p1的父级,p2.getParent()方法可以取得到
我在p1内处理了mouseDragged事件,p2就接收不到mouseDragged事件了,怎么办,
怎么样才能让它向上传递呢,
p1处理事件完后继续也能让在p2内的相同事件也能接收到。

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【chensjmail】截止到2008-07-11 16:32:20的历史汇总数据(不包括此帖):
    发帖的总数量:12                       发帖的总分数:570                      每贴平均分数:47                       
    回帖的总数量:119                      得分贴总数量:45                       回帖的得分率:37%                      
    结贴的总数量:1                        结贴的总分数:100                      
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:11                       未结的总分数:470                      
    结贴的百分比:8.33  %               结分的百分比:17.54 %                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
      

  2.   

    自己重新派发p1的事件到p2
    p2.dispatchEvent(p1_event);
      

  3.   

    谢谢,
    p2.dispatchEvent(p1_event);
    我用过了,
    但是p2的x,y坐标与p1的x,y坐标值不同,
    我的p1要比p2的小很多,mouseDragged事件被激活的时候接收到的是p1的x,y值,就算指派到p2坐标也不对,怎么又怎么来处理呢,
      

  4.   

    能不能从p2上计算一下p1左上角点的位置,然后在dispatchEvent前将p2的坐标值校正后传给p1
      

  5.   

    我也这样想过但得不到鼠标在p2中的坐标,不知道你能不能得到,
    我用p2.getMousePosition().x,p2.getMousePosition().y
    然后重新实例化一个MouseEvent对象还是不行,