我需要删除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));


基本上与链接中的相同。

谢谢你们!

最佳答案

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

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


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

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

关于java - 如何使用BorderLayout/GroupLayout从JPanel中删除特定元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6307546/

10-12 06:23