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

zw3*_*324 1 java layout swing grouplayout border-layout

我需要删除ComponentCenterJPanel,但一些尝试之后没有占上风.

我试过这个方法:

使用BorderLayout从JPanel中删除CENTER元素

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

Type mismatch: cannot convert from LayoutManager to BorderLayout
Run Code Online (Sandbox Code Playgroud)

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

另外,如果我只能从GroupLayout更新一个组件,我也很好奇.有人能告诉我怎么做吗?

编辑:@mre:这是代码:

BorderLayout layout = panel.getLayout();
panel.remove(layout.getLayoutComponent(BorderLayout.CENTER));
Run Code Online (Sandbox Code Playgroud)

这与链接基本相同.

谢谢你们!

JB *_*zet 5

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

BorderLayout layout = (BorderLayout) panel.getLayout();
Run Code Online (Sandbox Code Playgroud)

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

panel.add(myComponent, BorderLayout.CENTER);
...
panel.remove(myComponent);
Run Code Online (Sandbox Code Playgroud)