Java AWT:清理/删除容器面板
Posted
技术标签:
【中文标题】Java AWT:清理/删除容器面板【英文标题】:Java AWT: Clean / Remove a container panel 【发布时间】:2011-07-04 13:50:34 【问题描述】:我是 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”时,我需要删除以前的布局并使用新数据重新创建它,但不要完成它。
谢谢。
【问题讨论】:
【参考方案1】:其实是 Swing。您可以在 JPanel0 中使用 removeAll 方法,然后再在其上添加新内容。
【讨论】:
我可以只清理BorderLayout.CENTER
吗?【参考方案2】:
这实际上是 javax.swing,而不是 java.awt。
另外,您的问题相当令人困惑。你说你想删除一个“布局”,但java实际上有一个布局类,这不是你在说的。您想删除 COMPONENTS。
myPanel.removeAll(); //removes all the stuff inside
会成功的。我建议重命名你的一些东西,这样你就不会混淆布局、面板和组件。
【讨论】:
我只能清理BorderLayout.CENTER
吗?【参考方案3】:
我可以解决这个example的宽度:
BorderLayout layout = panel.getLayout();
panel.remove(layout.getLayoutComponent(BorderLayout.CENTER));
【讨论】:
remove() 删除单个组件。 removeAll() 删除所有组件。 @donnyton(我对awt和swing知之甚少)是的,但是方法'removeAll'删除了整个布局,我只需要清除中心。如果我删除“removeAll”不起作用的所有内容。可能就是这个不好的例子,代码太大了放不下以上是关于Java AWT:清理/删除容器面板的主要内容,如果未能解决你的问题,请参考以下文章