Container content = getContentPane();可得JFrame;

解决方案 »

  1.   

    public void actionPerformed(ActionEvent e) {
    JPanel jp=(JPanel)((JButton)e.getSource()).getParent();//得到JPanel
    JFrame jf=(JFrame)((JButton)e.getSource()).getParent().getParent().getParent().getParent().getParent();//得到JFrame
    }
      

  2.   

    JPanel:((Container)actionEvent.getSource()).getParent();
    顶层的容器:
        Container c = (Container) actionEvent.getSource();
        while (c.getParent() != null) {
            c = c.getParent();
        }
      

  3.   

    顶层的容器理论上是那么得到的,但也有例外,有时候由于代码的不当会造成c.getParent()==null而c并不是顶级容器,这要看具体情况了。
      

  4.   

    我也有问题:有一个JFrame 我将JButton放在JFrame 的 contentPane 
    ((JButton)e.getSource()).getParent()  返回的是 JFrame还是contentPane??
    能不能讲一下contentPane与JFrame 的区别??