Java AWT:清理/删除容器面板
我是Java AWT的新手,我想为大学做一个练习。
这将是代码:
public class Panel0 extends JPanel {
//...
private void createMyLayout(bool test) {
this.add(BorderLayout.CENTER, new Panel1(test));
}
//...
}
public class Panel1 extends JPanel {
public Panel1(bool test){
super(new GridLayout(1,4));
if(breed!= Breed.ZOMBIE)
add(new Panel2("helow 1 test"));
else
add(new Panel2("helow 2 test"));
}
}
public class Panel2 extends JPanel{
public Panel2(String myText){
super(new BorderLayout());
add(new JLabel(myText));
}
}
当您调用方法“createMyLayout”时,我需要删除以前的布局并使用新数据重新创建它,但不要完成它。
感谢。
答案 0 :(得分:2)
实际上,这是Swing。在添加新内容之前,您可以在JPanel0中使用removeAll方法。
答案 1 :(得分:2)
我可以解决这个example的宽度:
BorderLayout layout = panel.getLayout();
panel.remove(layout.getLayoutComponent(BorderLayout.CENTER));
答案 2 :(得分:0)
这实际上是javax.swing,而不是java.awt。
另外,你的问题相当令人困惑。你说你想删除一个“布局”,但java实际上有一个不是你所说的布局类。您想要删除COMPONENTS。
myPanel.removeAll(); //removes all the stuff inside
会做到这一点。我建议你重命名一些东西,这样你就不会在布局,面板和组件之间混淆。