我需要删除 Component 在里面 CenterJPanel, ,但是经过一些尝试之后。

我在这里尝试了该方法:

使用BorderLayout从JPanel删除中心元素

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

Type mismatch: cannot convert from LayoutManager to BorderLayout

我是在解释答案吗?

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

编辑:@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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top