移除容器中的项目

Posted

技术标签:

【中文标题】移除容器中的项目【英文标题】:Removing items in a container 【发布时间】:2012-05-12 06:21:55 【问题描述】:

当我尝试从容器中移除组件时,我使用了这段代码。

private static void clear()
    for (int i = con.getComponentCount() - 1; i >= 1; i--)
        con.remove(i);
    

当我调用这个函数时,这个函数表现得好像它什么也没做,但它就像它的重载一样崩溃。它没有错误。但是当我将con.getComponent(i).setVisible(false); 放入代码中时它可以工作,但我想删除组件。哈普?

【问题讨论】:

我假设这个函数在一个类中,而 con 是那个类的成员变量?您可以包含声明和实例化该变量的行吗?还有,当它崩溃时,没有错误? @NathanielFord:可能是java.awt.Container 实例。 我希望这不是一个真正的可变静态。 (你是多线程的吗?为什么不想删除组件 0?) 【参考方案1】:

试试这个:

while (con.getComponentCount()>0) 
    con.remove(0);

【讨论】:

总的来说,我更喜欢这种方法。但是,以上怎么会触发IOOBE呢? @pst:对。在i 变量在循环中递减之前没有注意到。【参考方案2】:

在您完成删除要删除的组件后,调用 Container.validate(); Container.repaint();实际上,您可能还想重新验证更多内容。

【讨论】:

那么问题解决了吗?如果是这样,您应该将最佳解决方案标记为正确。这将关闭问题【参考方案3】:

你在移除组件后尝试过 containerObject.repaint() 吗?

【讨论】:

【参考方案4】:

假设con是一个awt Container,可以调用

con.removeAll();

一次删除所有包含的组件。

【讨论】:

以上是关于移除容器中的项目的主要内容,如果未能解决你的问题,请参考以下文章

电容怎么拆平台

centos7 docker容器运行和移除容器内应用详解

移除项目中的UIWebView

移除项目中的UIWebView

vs中的啥跟eclipse中部署Tomcat相似

如何从 ext js 中的窗口中删除项目?