我有一个JPanel坐在JFrame的BorderLayout的中心位置。如何将当前的JPanel替换为新的?
答案 0 :(得分:1)
你有没有尝试过以下几点:
void swapCenterPanel(JFrame frame, JPanel oldPanel, JPanel newPanel) {
frame.getContentPane().remove(oldPanel);
frame.getContentPane().add(newPanel, BorderLayout.CENTER);
}
答案 1 :(得分:1)
只需将组件添加到中心并重新验证()父容器
container.add(BorderLayout.CENTER, newPanel);
container.revalidate();
答案 2 :(得分:1)
使用管理此功能的Card Layout。
答案 3 :(得分:0)
我通过反复试验得到了没有z索引问题的工作。
让x调用具有BorderLayout
的JPanel
我们可以调用当前占用Component
的{{1}}
我们可以调用z BorderLayout.Center
替换中心位置。
JPanel
我发现如果我试图通过LayoutManager本身删除现有的JPanel,它就不起作用了。相反,如果你使用JPanel的remove方法,那么java doc会说它通知布局removeLayoutComponent方法并且似乎可以做到这一点。