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



我需要删除JPanelCenter中的Component,但经过一些尝试后没有成功。

我试过这里的方法:

使用BorderLayout 从JPanel中删除CENTER元素

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

Type mismatch: cannot convert from LayoutManager to BorderLayout

我把答案解释错了吗?

此外,我还很好奇是否可以从GroupLayout中只更新一个组件。有人能告诉我怎么做吗?

编辑:@mre:这是代码:

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

这与链接中的基本相同。

谢谢大家!

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

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

但如果你知道哪个组件在中心,你可以把它去掉:

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

最新更新