2011-06-10 84 views
1

我需要删除JPanelCenter中的Component,但经过一些尝试后才能获胜。如何使用BorderLayout/GroupLayout从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)); 

这基本上是相同的链接。

谢谢大家!

+0

请提供相关代码。 – mre 2011-06-10 14:15:52

+0

你确定你的面板有BorderLayout吗? – 2011-06-10 14:17:08

回答

5

你必须布局管理器向下转换的BorderLayout:

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

但是,如果你知道哪些部件是在市中心,你可以将其删除:

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

谢谢!我以前试过,我发现还有另一个错误导致我相信这个解决方案会导致NullPointerException。现在它更好:) p.s.第二种解决方案非常棒。这也适用于GroupLayout吗? – 2011-06-10 14:21:08

相关问题