Я в полной растерянности.У меня есть метод, который проходит через Vector of TreePaths, содержащий пользовательский класс FileNode, и извлекает файл, содержащийся в каждом последнем узле.Результатом является распечатанный список всех имен файлов в векторе.У меня был цикл for, чтобы увеличивать его, и он работал нормально, но я изменил его на цикл while, чтобы позволить мне иметь несколько страниц.Теперь по какой-то причине он печатает только последние 11 файлов.
Я выяснил, что вызывает это, но я не знаю, почему или как это исправить.Я добавил строки для печати на консоли 'lineCount' и 'printPaths.size ()' и обнаружил, что lineCount увеличивается до 55, затем возвращается к 15 и продолжает увеличиваться.Имена фактически не начинали печататься, пока они не вернулись к 15.
Я прошел через это в режиме отладки, и он проходит цикл печати 55 раз, возвращает код функции печати, которая сообщает, что эточасть печатной страницы, затем она попадает в метод печати, для которого у меня нет источника, и когда я отступаю от этого, она возвращается в начало цикла, и lineCount равен 14.действительно странная часть заключается в том, что он печатает 11 файлов, хотя в соответствии с программой он еще даже не просматривал эту часть вектора.
Если у кого-то есть хоть малейшее представление о том, что вызвало это, я был бы очень признателен за помощь.Вот кусок кода, который занимается печатью списка.Надеюсь, этого достаточно.
lineCount = 13;
int lineSpacing = 14;
g.setFont(new Font("Dialog", Font.PLAIN, 10));
boolean color = true;
if (summ) {
g.drawString(((TreePath) printPaths.get(0)).getPathComponent(
((TreePath) printPaths.get(0)).getPathCount() - 3)
.toString()
+ " : "
+ ((TreePath) printPaths.get(0)).getPathComponent(
((TreePath) printPaths.get(0)).getPathCount() - 5)
.toString(), 36, lineCount * lineSpacing);
lineCount++;
//for (int j = 1; j < printPaths.size(); j++) {
while((printPaths.size()>1) && lineCount<55){
String type = ((TreePath) printPaths.get(1)).getPathComponent(
((TreePath) printPaths.get(1)).getPathCount() - 5)
.toString();
String date = ((TreePath) printPaths.get(1)).getPathComponent(
((TreePath) printPaths.get(1)).getPathCount() - 3)
.toString();
String typeU = ((TreePath) printPaths.get(0))
.getPathComponent(
((TreePath) printPaths.get(1)).getPathCount() - 5)
.toString();
String dateU = ((TreePath) printPaths.get(0))
.getPathComponent(
((TreePath) printPaths.get(1)).getPathCount() - 3)
.toString();
if (!(type == typeU) && (date == dateU)) {
lineCount++;
g.setColor(c1);
g.drawString(date + " : " + type, 36, lineCount
* lineSpacing);
lineCount++;
}
if(color)
g.setColor(c1);
else
g.setColor(c2);
g.drawString(((TreePath) printPaths.get(1))
.getLastPathComponent().toString(), 54, lineCount
* lineSpacing);
color=!color;
lineCount++;
printPaths.remove(0);
System.out.println(printPaths.size());
System.out.println(lineCount);
}
}