使用BorderLayout从JPanel中移除CENTER元素

30

有没有办法在不引用Component本身的情况下,从BorderLayoutJPanelCENTER中删除Component

1个回答

50

像这样吗?

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

2
很棒。必须稍微修改一下,但它奏效了。 用这种方式使用: myPanel.remove(layout.getLayoutComponent(BorderLayout.CENTER); - Evan Fosmark
你们两个都忘了remove函数的闭合括号 ;) - Tom Martin
5
请确保在更改组件后调用Container.validate()方法,以便通知布局管理器重新计算正在显示的组件的位置。在您的示例中,应使用panel.validate()方法。 - gencoreoperative
有人能解释一下这段代码应该放在哪里或者如何使用它吗? - Jack
我收到了“不兼容类型:LayoutManager无法转换为BorderLayout”的错误消息。我做错了什么? - Adnan Ahmad Khan
最好您发布一个新问题并附上您的代码,这可能是一个稍微不同的情况。 - ninesided

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接