Java 如何删除容器的所有子组件?

Java 如何删除容器的所有子组件?,java,swing,jpanel,Java,Swing,Jpanel,我有一个带有JPanel的swing应用程序,它充当我的应用程序的查看端口。当用户单击菜单项或按钮并在其中创建新组件时,我希望我的应用程序删除视图端口内的所有组件。 我知道如何从容器中删除组件,目前不清楚哪个组件在视图端口中,因此我认为我不能使用以下代码: viewport.remove(component); viewport.revalidate(); viewport.repaint(); 我的问题是: 如何在不知道要移除哪个组件的情况下移除容器中的所有组件 这种删除所有零部件并创建其他

我有一个带有
JPanel
的swing应用程序,它充当我的应用程序的查看端口。当用户单击菜单项或按钮并在其中创建新组件时,我希望我的应用程序删除视图端口内的所有组件。 我知道如何从容器中删除组件,目前不清楚哪个组件在视图端口中,因此我认为我不能使用以下代码:

viewport.remove(component);
viewport.revalidate();
viewport.repaint();
我的问题是:

  • 如何在不知道要移除哪个组件的情况下移除容器中的所有组件

  • 这种删除所有零部件并创建其他零部件并将其插入视图端口的方法是否正确

  • 看一看方法

    从此容器中删除所有组件。此方法还通知布局管理器通过removeLayoutComponent方法从此容器布局中删除组件


    您的问题的直接答案是只需在容器上调用
    removeAll()
    。更好的答案是(因为我认为您的问题是一个an的示例)使用CardLayout并通过该布局简单地交换组件