移除容器中的项目
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();
一次删除所有包含的组件。
【讨论】:
以上是关于移除容器中的项目的主要内容,如果未能解决你的问题,请参考以下文章