日期:2014-05-20  浏览次数:20783 次

如何获取容器中的容器?
我在JDesktopPane中建立了多个JInternalFrame,每个JInternalFrame中都有一个Jbutton。

现在通过desktopPane.getSelectedFrame()可以获得当前选中的JInternalFrame,JInternalFrame中的Jbutton如何获取?

------解决方案--------------------
老实讲,我建议你修改下设计...


------解决方案--------------------
给你的每个组件都起一个名字,通过下面的代码引用它们,
public class ComponentUtil {
public static Component getComponent(Container container,String name) {
for(Component component: container.getComponents()) {
if(name.equals(component.getName()))
return component;
if(component instanceof Container) {
Container subcontainer=(Container)component;
Component subcomponent=getComponent(subcontainer,name);
if(subcomponent!=null)
return subcomponent;
}
}
return null;
}
public static Component getComponent(JFrame frame,String name) {
return getComponent(frame.getContentPane(),name);
}
}