写了两个类,一个扩展了JButton,叫btnSelf,
另一个扩展了JPanel,叫pnlSelf。现在在btnSelf头添加了一个监听器,监听鼠标事件。
想在这个事件里面调用所在的pnlSelf里面写的方法,
该如何去写啊。

解决方案 »

  1.   

    想要实现btnSelf拖进pnlSelf之后,用鼠标点btnSelf之后,可以调用pnlSelf的方法
      

  2.   

    在pnlSelf里增加btnSelf的对象啊
      

  3.   

    给你一个简单的方法:btnSel.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
    if((pnlSelf.getX() <= btnSe.getX()) 
    && (pnlSelf.getY() <= btnSe.getY()) 
    &&  (pnlSelf.getX() + pnlSelf.getWidth() >= btnSe.getX() + btnSe.getWidth())
    &&  (pnlSelf.getY() + pnlSelf.getHeight() >= btnSe.getY()+ btnSe.getHeight())){
    action();
    }
    }

      

  4.   

    也就是说:在你点击btnSel时,判断btnSel是否在pnlSelf里面,
    要是在pnlSelf里面,则执行action();
    否则不执行action();
      

  5.   

    btnSelf应该是放在pnlSelf里面的吧?怎么会调用不到呢?
      

  6.   

    你可是试试 getParent()方法,用这个方法来获取一个对象,然后强制转换到你扩展的类型,
      

  7.   

    主要是不想在pnlSelf里写代码,想写在btnSelf的构造方法里
    这样一拖进去后就可以直接用,不用在pnlSelf里再修改什么了
    不过看起来好像是不行。