使用BorderLayout从JPanel中删除CENTER元素

Eva*_*ark 22 java layout swing components constraints

是否有任何方法可以删除Component添加到CENTERa JPanel中的a BorderLayout,而不必引用Component自身?

nin*_*ded 42

像这样的东西?

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

  • 在将组件更改为信号布局管理器以重新计算正在显示的组件的位置后,请确保调用Container.validate().在您的示例中,它将是panel.validate(); (5认同)
  • 凉.不得不修改一下,但它确实有效.以这种方式使用它:myPanel.remove(layout.getLayoutComponent(BorderLayout.CENTER); (2认同)