JFrame frame = new JFrame();
JDialog dialog = new JDialog(frame);
会有一些场景对话框弹出,盖在frame上层。主要是这种设置的父子关系,如果通过dialog.getOwner()找frame。有没有办法在对话框弹出的情况下通过frame找到dialog。不从业务的角度考虑,因为要做一个共通的特性所以每个JFrame里面定义的dialog名字都不同。最好是swing提供了什么静态方法传一个parnet能把所有的子窗口找到

解决方案 »

  1.   

    有这么个函数可以用:
      public Component[] getComponents()
    然后在根据类型过滤一遍。
    如果要快速查找,考虑用HashMap来记录和管理这些子窗口吧。
      

  2.   


    getComponents()只能取到在Frame上的组件。弹出来的dialog和frame有父子关系但是并不是在frame上的组件
      

  3.   

    原来如此,看来还是理解错你的意思了:
    Window[] wnds = Window.getWindows();
    for (Window wnd : wnds) {
        System.out.println(wnd.getName() + "\t" + wnd.getClass());
    }