JFrame frame = new JFrame();
JDialog dialog = new JDialog(frame);
会有一些场景对话框弹出,盖在frame上层。主要是这种设置的父子关系,如果通过dialog.getOwner()找frame。有没有办法在对话框弹出的情况下通过frame找到dialog。不从业务的角度考虑,因为要做一个共通的特性所以每个JFrame里面定义的dialog名字都不同。最好是swing提供了什么静态方法传一个parnet能把所有的子窗口找到
JDialog dialog = new JDialog(frame);
会有一些场景对话框弹出,盖在frame上层。主要是这种设置的父子关系,如果通过dialog.getOwner()找frame。有没有办法在对话框弹出的情况下通过frame找到dialog。不从业务的角度考虑,因为要做一个共通的特性所以每个JFrame里面定义的dialog名字都不同。最好是swing提供了什么静态方法传一个parnet能把所有的子窗口找到
public Component[] getComponents()
然后在根据类型过滤一遍。
如果要快速查找,考虑用HashMap来记录和管理这些子窗口吧。
getComponents()只能取到在Frame上的组件。弹出来的dialog和frame有父子关系但是并不是在frame上的组件
Window[] wnds = Window.getWindows();
for (Window wnd : wnds) {
System.out.println(wnd.getName() + "\t" + wnd.getClass());
}