0

我正在尝试使用 Netbeans GUI Builder 创建我的应用程序,但这里有一个情况。

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

**private void initComponents() {

        jLabel1 = new javax.swing.JLabel();

}**

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

ArrayList updateComponentsList = new ArrayList();

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

由于 GUIBuilder 会自动为添加的组件生成 Java 代码,如何让 GUIBuilder 在添加新组件时自动更新此 ArrayList?

有人可以帮我解决这个问题吗?

提前致谢。

4

1 回答 1

1

它可能对你有用。当在您当前的 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;

}

于 2013-08-16T09:10:04.500 回答