我可以在运行时在 netbeans 的 jframe 中添加一个组件吗?
Posted
技术标签:
【中文标题】我可以在运行时在 netbeans 的 jframe 中添加一个组件吗?【英文标题】:Can i add a component in jframe in netbeans at runtime? 【发布时间】:2011-03-04 21:28:56 【问题描述】:我在 netbeans 中构建了一个表单,并且想要添加或删除带有按钮或组合框的 actionperformed 事件的组件,这可能吗?
如果是,怎么做?
【问题讨论】:
【参考方案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() 方法,而不是表单本身。以上是关于我可以在运行时在 netbeans 的 jframe 中添加一个组件吗?的主要内容,如果未能解决你的问题,请参考以下文章