7

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

viewport.remove(component);
viewport.revalidate();
viewport.repaint();

我的问题:

  1. 如何在不知道要删除哪个组件的情况下删除容器内的所有组件?

  2. 这种删除所有组件并创建其他组件并将它们插入视口的方法是否正确?

4

2 回答 2

8

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

于 2013-06-01T06:31:17.910 回答
4

看看Removeall()方法

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

于 2013-06-01T06:31:08.493 回答