我想切换jpanels.lets的内容说我有jpanel1和jpanel2,我想将jpanel1的内容更改为jpanel2,jpanel2也更改为jpanel1.those面板具有完全不同的内容。所以我无法更改属性jpanel和所有元素代替switch.this图像澄清
void switchPanels (){
Content c1=jPanel1.getContent();
jPanel1.setContent(jPanel2.getContent());
jPanel2.setContent(c1);
}
我知道上面的代码不起作用。我想知道如何实现这一点。
答案 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();
}