正是这样,不过稍有改变 JFrame f = new JFrame("GridBagLayout 4");
JPanel p = new JPanel();
f.setContentPane(p);

Container c = p;
while((c = c.getParent())!=null)
{
if(c instanceof JFrame)
{
//do something
System.out.println(c.getName());
break;
}
}

解决方案 »

  1.   

    这样不行的,一般情况下,要弄好多次getparent()呢,不是好主意,
    还不如作个静态成员呢:
    public class application{
      static JFrame mainFrame=null;
      public static void main(String[] args) {
        frame = new JFrame ();
        frame.show();
      }
    }
    哪位朋友有更好的办法?
      

  2.   

    JFrame frame=(JFrame)pane.getTopLevelAncestor();