我有一个JPanel坐在JFrame的BorderLayout的中心位置。我怎样才能将当前的JPanel换成新的?在BorderLayout中交换中心JPanel
0
A
回答
1
只需将组件添加到中心和重新验证(。
1
你尝试上线的东西:)父容器
container.add(BorderLayout.CENTER, newPanel);
container.revalidate();
+1
您还需要在此建议中添加revalidate()或validate()。 – camickr 2010-04-26 16:05:53
0
使用管理这个对你Card Layout
void swapCenterPanel(JFrame frame, JPanel oldPanel, JPanel newPanel) {
frame.getContentPane().remove(oldPanel);
frame.getContentPane().add(newPanel, BorderLayout.CENTER);
}
0
我得到了这个工作,没有z索引问题通过试错。
让呼叫X它具有的BorderLayout
让我们称之为Y,它是目前占用BorderLayout.Center
的Component
让呼叫z中的JPanel
中的中心位置,以取代JPanel
。
我发现如果我试图通过LayoutManager本身删除现有的JPanel,它不起作用。相反,如果您使用JPanel的remove方法,那么java文档会说它会通知布局removeLayoutComponent方法,并且似乎可以做到这一点。
相关问题
- 1. JPanel不显示在BorderLayout中
- 2. 在一个BorderLayout中定位JPanel
- 3. 在JPanel上添加JLabel - BorderLayout
- 4. BorderLayout中心命令不会中心
- 5. 将JPanel添加到JApplet的BorderLayout中
- 6. 如何重新绘制BorderLayout中的JPanel
- 7. BorderLayout中心的网格
- 8. 中心的JPanel -java
- 9. 如何使用BorderLayout在JPanel中定位对象?
- 10. BorderLayout - 防止“中心”组件被“切断”
- 11. 将图像添加到borderlayout中心
- 12. 交换JPanel,第二JPanel不显示
- 13. 如何使用BorderLayout/GroupLayout从JPanel中删除特定元素?
- 14. 在jpanel中心写一个字符串
- 15. 如何在另一个JPanel的中心添加一个JPanel?
- 16. 如何将一个BorderLayout的中心中使用JScrollPane的
- 17. 如何使网格适合ZK中的borderlayout的中心
- 18. Java对齐JPanel中心的JLabel
- 19. 的Java:交换打开JPanel并JFrame的
- 20. setAlignmentY未将JLabel居中放在BorderLayout中
- 21. 我可以在JPanel数组中切换JPanel的位置吗?
- 22. jscrollpane在jpanel中
- 23. 我可以强制在BorderLayout中自动换行
- 24. 如何将两个组件添加到带有BorderLayout的JPanel?
- 25. BorderLayout中的scrollpane块按钮?
- 26. 在窗体之间交换VBA +以决斗屏幕为中心
- 27. JavaFX ImageView不在BorderLayout中显示图像
- 28. 如何在BorderLayout中实现JSplitPane?
- 29. 在BorderLayout中对齐JLabel和JTextField
- 30. 在arraylist中添加JPanel <JPanel>
完美地工作。谢谢! – derekerdmann 2010-04-26 12:47:53
顺便说一下,container.revalidate()实际上应该是container.validate()。 – derekerdmann 2010-04-26 12:55:12
-1,此解决方案不起作用。它似乎可行,但尝试调整框架的大小,现在将在新面板上绘制前一个面板。这是因为“Z-Ordering”在Swing中的作用。根据您的确切要求,正确的解决方案是其他两种建议之一。 – camickr 2010-04-26 16:04:21