【发布时间】:2010-11-28 00:45:07
【问题描述】:
我正在尝试从 Java 容器中删除除第一个子组件之外的所有子组件。以下代码记录“有 3 个”并抛出 ArrayIndexOutOfBoundsException: Array index out of range: 2
int componentCount = cardPanel.getComponentCount();
logger.info("There are " + componentCount);
for (int i = 1; i < componentCount; i++) {
cardPanel.remove(i);
}
但是,这个修改后的版本可以完美运行:
Component[] components = cardPanel.getComponents();
logger.info("There are " + components.length);
for (int i = 1; i < components.length; i++) {
cardPanel.remove(components[i]);
}
Container.getComponentCount() 和 Container.remove(int i) 似乎无法就容器中的组件数量达成一致。有没有其他人遇到过这个问题?
【问题讨论】:
标签: java components containers