我使用了迭代器但是在调用时我似乎仍然得到修改异常
iterator.next()
public void render(Graphics g) {
if(consoleShown) {
int boxHeight = 0;
Iterator<String> iterator = output.iterator();
while(iterator.hasNext()) {
boxHeight += ((int)writefont.getStringBounds(iterator.next(), frc).getHeight());
}
if(boxHeight > 225) {
boxHeight = 225;
}
for(int i = offset; i < offset + 25; i++) { //Offset being the line from the list being displayed.
if(i < output.size()) {
//Inverse the range to reverse the order of the list being displayed.
//The irriterator adds the new value to the beginning of the list and not the end to avoid exceptions.
g.drawString(output.get((int)(Utils.inverseRange(i, output.size())) - 1), 10, (i - offset + 1) * (int)writefont.getStringBounds(output.get(i), frc).getHeight());
}
}
g.drawLine(0, boxHeight + 3, game.getWidth(), boxHeight + 3);
g.drawString(input, 10, boxHeight + 12);
}
}
我的假设是我使用output.get(i)
进一步向下访问列表,但我不认为我可以在这种情况下添加迭代器。
基本上我有一个字符串列表,每个字符串都有测量的字体高度并添加到整数。
答案 0 :(得分:0)
您确定修改异常与迭代器有关吗?在那一行中有很多事情发生,还有其他一些可能出错的事情,与你的迭代器无关。
我建议将该行分成几行代码并将iterator.next()的结果分配给变量。