1

我需要删除ComponentCenterJPanel,但经过一些尝试后没有占上风。

我在这里尝试了该方法:

使用 BorderLayout 从 JPanel 中删除 CENTER 元素

但是答案的方法会产生编译时错误:

Type mismatch: cannot convert from LayoutManager to BorderLayout

我对答案的解释有误吗?

此外,我也很好奇是否可以只更新 GroupLayout 中的单个组件。有人可以告诉我该怎么做吗?

编辑:@mre:这是代码:

BorderLayout layout = panel.getLayout();
panel.remove(layout.getLayoutComponent(BorderLayout.CENTER));

这与链接中的基本相同。

谢谢你们!

4

1 回答 1

5

您必须将布局管理器向下转换为 BorderLayout :

BorderLayout layout = (BorderLayout) panel.getLayout();

但是,如果您知道哪个组件位于中心,则可以将其删除:

panel.add(myComponent, BorderLayout.CENTER);
...
panel.remove(myComponent);
于 2011-06-10T14:17:08.727 回答