【问题标题】:jgoodies how to remove component added with PanelBuilder?jgoodies 如何删除使用 PanelBuilder 添加的组件?
【发布时间】:2011-03-18 12:45:23
【问题描述】:

我正在使用com.jgoodies.forms.builder.PanelBuilder 添加按钮和行。然后我调用PanelBuilder.getPanel() 并将面板附加到一个JPopupMenu。

有没有办法从 PanelBuilder 生成的面板中删除和重新附加一些附加组件:我想动态混合/退出一个附加按钮和相应的空行(使用 PanelBuilder.appendRow(" f:30px"))。

谢谢。

【问题讨论】:

    标签: java swing jgoodies


    【解决方案1】:

    删除组件确实有效,但会在面板上留下未使用的空间区域。 JPanel.revalidate() 仅在添加 JButton 之前未使用 PanelBuilder.appendRow() 时有效。

    另外,我无法重新附加已删除的 JButton。它出现在 JPanel 的组件列表中,但不显示。

    这就是为什么我要在每个请求上动态创建一个新的 JPanel 并将其分配给 JPopupMenu。

    【讨论】:

    • 不要忘记通过单击这些回复之一旁边的复选来选择其中一个答案作为正确答案。
    • 如果没有一个答案能真正解决我的问题,我该怎么办?
    • 将对您最有用的答案标记为已接受的答案。标记您自己的答案是有效的。
    【解决方案2】:

    如果你有对初始项目的 ketp 引用,那么没有什么可以阻止你做一个

    myPanel.remove(theComponent);
    

    【讨论】:

    • 但是面板的高度没有更新。我在组件之前的最后一个索引处看到一个宽空行。我如何处理在 Button 之前添加的 PanelBuilder.appendRow("f:30px") 在 Button 被删除后不再需要?
    • 尝试做 panel.pack() 或 validate().. 或者在同一位置有两个面板并使用面板的 setvisible() 方法
    猜你喜欢
    • 1970-01-01
    • 2017-11-15
    • 1970-01-01
    • 2019-04-24
    • 1970-01-01
    • 2021-03-14
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多