【问题标题】:Adding components to JFrame in Netbeans Swing GUI Builder在 Netbeans Swing GUI Builder 中向 JFrame 添加组件
【发布时间】:2013-08-18 14:52:42
【问题描述】:

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

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

**private void initComponents() {

        jLabel1 = new javax.swing.JLabel();

}**

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

ArrayList updateComponentsList = new ArrayList();

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

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

谁能帮我解决这个问题?

提前致谢。

【问题讨论】:

标签: java swing netbeans gui-builder


【解决方案1】:

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

public static List getAllComponents(final Container 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;

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 2012-03-23
    • 1970-01-01
    • 2016-10-29
    • 2023-04-09
    • 1970-01-01
    相关资源
    最近更新 更多