如何使用BorderLayout / GroupLayout从JPanel中删除特定元素?

时间:2011-06-10 14:11:14

标签: java swing layout grouplayout border-layout

我需要删除ComponentCenter中的JPanel,但经过一些尝试后仍无法获胜。

我在这里尝试了这个方法:

Removing the CENTER element from a JPanel using BorderLayout

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

Type mismatch: cannot convert from LayoutManager to BorderLayout

我是否错误地解释了答案?

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

编辑:@mre:这是代码:

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

这与链接基本相同。

谢谢大家!

1 个答案:

答案 0 :(得分:5)

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

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

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

panel.add(myComponent, BorderLayout.CENTER);
...
panel.remove(myComponent);