在Netbeans Swing GUI Builder中向JFrame添加组件



我正试图使用Netbeans GUI Builder创建我的应用程序,但我遇到了一种情况。

当我从GUI Builder的Palette窗口将一个组件(Jlabel或任何其他使用的已定义组件)拖放到JPanel时,Netbeans会自动添加Java代码。例如,生成以下代码:

**private void initComponents() {
        jLabel1 = new javax.swing.JLabel();
}**

现在我有一个ArrayList,它需要存储GUIBuilder添加的组件obct。在这种情况下,添加的对象是jLabel1。

ArrayList updateComponentsList = new ArrayList();

所以我需要将这个对象存储在这个ArrayList中。事实上,每当GUIBuilder添加新组件时,我都需要将新组件对象自动添加到此列表中。

既然GUIBuilder会自动为添加的组件生成Java代码,那么每当添加新组件时,我如何让GUIBuildor自动更新这个ArrayList?

有人能帮我弄清楚吗?

提前谢谢。

它可能对您有用。当在当前GUI中添加新组件时,它会自动调用initComponent()方法来重新绘制JFrame,您可以通过在initComponent(()块末尾调用下面的方法来获得更新的组件列表。

公共静态列表getAllComponents(最终容器c){

Component[] comps = c.getComponents();
List<Component> compList = new ArrayList<Component>();
for (Component comp : comps) {
  compList.add(comp);
  if (comp instanceof Container) {
    compList.addAll(getAllComponents((Container) comp));
  }
}
return compList;

}

相关内容

  • 没有找到相关文章

最新更新