【发布时间】:2011-03-18 12:45:23
【问题描述】:
我正在使用com.jgoodies.forms.builder.PanelBuilder 添加按钮和行。然后我调用PanelBuilder.getPanel() 并将面板附加到一个JPopupMenu。
有没有办法从 PanelBuilder 生成的面板中删除和重新附加一些附加组件:我想动态混合/退出一个附加按钮和相应的空行(使用 PanelBuilder.appendRow(" f:30px"))。
谢谢。
【问题讨论】:
我正在使用com.jgoodies.forms.builder.PanelBuilder 添加按钮和行。然后我调用PanelBuilder.getPanel() 并将面板附加到一个JPopupMenu。
有没有办法从 PanelBuilder 生成的面板中删除和重新附加一些附加组件:我想动态混合/退出一个附加按钮和相应的空行(使用 PanelBuilder.appendRow(" f:30px"))。
谢谢。
【问题讨论】:
删除组件确实有效,但会在面板上留下未使用的空间区域。 JPanel.revalidate() 仅在添加 JButton 之前未使用 PanelBuilder.appendRow() 时有效。
另外,我无法重新附加已删除的 JButton。它出现在 JPanel 的组件列表中,但不显示。
这就是为什么我要在每个请求上动态创建一个新的 JPanel 并将其分配给 JPopupMenu。
【讨论】:
如果你有对初始项目的 ketp 引用,那么没有什么可以阻止你做一个
myPanel.remove(theComponent);
【讨论】: