e.getSource()可以知道是点在哪个Compartment上

解决方案 »

  1.   

    不行阿,用if(e.getSource()  instanceof Compartment)得不到
      

  2.   

    改成
    if(e.getSource()  instanceof JComponent)
      

  3.   

    当然是JComponent了,而且得到的是MainPanel而非MiniPanel
      

  4.   

    试试在Minipanel的mouseenter或者mouseclick函数中处理?
      

  5.   

    (Compartment)e.getSource()
    直接拿这个用不就行了,干吗要分清哪个呢?另,如果一定要分出哪个的话,就需要在MainPanel里保留Compartment的句柄,如
    Compartment com1 = new Compartment();
    然后就可以用
    if(e.getSource()  == this.com1)
    判断
      

  6.   

    我说了e.getSource()不是Compartment啊,所以没办法用。而且我得Compartment都是同一段代码动态的生成的,所以也没办法保留句柄吧
      

  7.   

    关于前一个,每个Compartment注册一个侦听器,应该可以用e.getSource()得到事件源吧。
      

  8.   

    java.awt.Component.getComponentAt(Point);
    A JComponent is a Container and a Container is a Component.