如何在JavaSwing中获取面板的所有组件?
如何在JavaSwing中获取面板的所有组件 有没有像C中的如何在JavaSwing中获取面板的所有组件?,java,arrays,swing,jpanel,jcomponent,Java,Arrays,Swing,Jpanel,Jcomponent,如何在JavaSwing中获取面板的所有组件 有没有像C中的foreach这样的方法来处理JPanel的所有子组件?您可以使用以下方法: 如果您有多个JPanel,并且希望获得所有组件的名称,请尝试以下操作: public void getAllComponetsNameInJPanels(JPanel... panels) { Component[] components; String componentName; for (JPanel panel : panels
foreach
这样的方法来处理JPanel的所有子组件?您可以使用以下方法:
如果您有多个JPanel,并且希望获得所有组件的名称,请尝试以下操作:
public void getAllComponetsNameInJPanels(JPanel... panels) {
Component[] components;
String componentName;
for (JPanel panel : panels) {
components = panel.getComponents();
for (Component compo : components) {
componentName = compo.getClass().getName();
System.out.println(compo.getClass().getName().substring(componentName.indexOf("swing.") + "swing.".length(), componentName.length()));
}
System.out.println("=====================");
}
}
在提问之前,有时尝试显而易见的东西是值得的…:)你知道有api文档,是吗:-)提示:再看看从super继承的方法。这将得到子组件,但不是那些组件的子组件。例如,如果您的面板具有容器,如CollappablePanel,则集合
组件
将包含对该CollappablePanel的引用,但不包含其子组件。
public void getAllComponetsNameInJPanels(JPanel... panels) {
Component[] components;
String componentName;
for (JPanel panel : panels) {
components = panel.getComponents();
for (Component compo : components) {
componentName = compo.getClass().getName();
System.out.println(compo.getClass().getName().substring(componentName.indexOf("swing.") + "swing.".length(), componentName.length()));
}
System.out.println("=====================");
}
}