【问题标题】:How to remove all children components of a container?如何删除容器的所有子组件?
【发布时间】:2013-05-28 00:20:49
【问题描述】:

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

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

我的问题:

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

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

【问题讨论】:

    标签: java swing jpanel


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      看看Removeall()方法

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

      【讨论】:

        猜你喜欢
        • 2016-07-12
        • 1970-01-01
        • 2011-09-28
        • 2021-06-09
        • 2014-09-30
        • 2022-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多