【问题标题】:Can i add a component in jframe in netbeans at runtime?我可以在运行时在 netbeans 的 jframe 中添加一个组件吗?
【发布时间】:2011-03-04 21:28:56
【问题描述】:

我在 netbeans 中构建了一个表单,并且想要添加或删除带有按钮或组合框的 actionperformed 事件的组件,这可能吗?

如果是,怎么做?

【问题讨论】:

    标签: java netbeans runtime components


    【解决方案1】:

    你可以在运行时添加组件,但是你必须调用jframe的paint()方法来显示添加的组件。

    【讨论】:

      【解决方案2】:

      创建一个 JPanel,在其中添加动态组件,然后使用 add/remove 和 setLayout() 方法控制其上的组件。

      【讨论】:

        【解决方案3】:

        在运行时添加组件的通用代码是:

        panel.add( someComponent );
        panel.revalidate();
        panel.repaint();
        

        但是,我相信 NetBeans 使用 GroupLayout 会导致问题。您需要了解所有约束是如何工作的,然后在使用 add(...) 方法时指定适当的约束。

        所以我的建议是不要使用 NetBeans 来设计你的表单并学习自己使用 LayoutManagers,这样你就可以完全控制布局并且添加组件就像上面的代码一样简单。

        【讨论】:

        • 您仍然可以使用 NetBeans 进行 UI 开发,只需使用 matisse 将 jpanel 添加到 UI 表单,并将其布局管理器设置为合理的值(BorderLayout 或 GradBag 等)。然后在运行时在该面板上使用 add() 方法,而不是表单本身。
        猜你喜欢
        • 1970-01-01
        • 2021-04-21
        • 2013-08-18
        • 2012-12-19
        • 2022-08-19
        • 1970-01-01
        • 2016-08-14
        • 2021-10-15
        • 1970-01-01
        相关资源
        最近更新 更多