在BorderLayout中交换中心JPanel

时间:2010-04-26 04:05:48

标签: java user-interface swing jframe jpanel

我有一个JPanel坐在JFrame的BorderLayout的中心位置。如何将当前的JPanel替换为新的?

4 个答案:

答案 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方法并且似乎可以做到这一点。