如何切换两个java jpanels的内容

时间:2014-08-12 13:20:31

标签: java swing jpanel

我想切换jpanels.lets的内容说我有jpanel1和jpanel2,我想将jpanel1的内容更改为jpanel2,jpanel2也更改为jpanel1.those面板具有完全不同的内容。所以我无法更改属性jpanel和所有元素代替switch.this图像澄清 enter image description here

void switchPanels (){
Content c1=jPanel1.getContent();
jPanel1.setContent(jPanel2.getContent());
jPanel2.setContent(c1);
}

我知道上面的代码不起作用。我想知道如何实现这一点。

1 个答案:

答案 0 :(得分:3)

我不会添加2个面板并切换其内容,而是将它们放在带有BorderLayout(CENTER)的另一个容器JPanel中。要交换它们,只需从container1中删除第一个面板并添加到容器2中。

JPanel container1=new JPanel();
container1.setLayout(new BorderLayout());
container1.add(thepanel1);
JPanel container2=new JPanel();
container2.setLayout(new BorderLayout());
container2.add(thepanel2);

public void swap() {
  container2.add(thepanel1);
  container1.add(thepanel2);
  revalidate();
  repaint();
}