我在这里有一些打印代码,每页打印一个数组信息。
double x = pf.getImageableX() + 1;
double y = pf.getImageableY();
double xMax = pf.getImageableWidth();
double yMax = pf.getImageableHeight();
if ((pageIndex < generation.length)) {
//Graphics code
y += (height of index) + 10;
return PAGE_EXISTS;
} else {
return NO_SUCH_PAGE;
}
}
我希望索引不断增加,每页打印更多对象,直到y超过yMax。此时,y将重置,我可以继续在下一页打印对象。
print()方法本身是递归的;因此,如果我尝试引入for循环,它只会反复打印相同的条目,直到(pageIndex&lt; generation.length)。
当y&gt;时,如何打印新页面? yMax,同时还能够打印我的数组中的所有元素?
答案 0 :(得分:0)
我不完全理解你的递归是如何工作的。也许看到电话会有所帮助。
如果此刻pageIndex表示您所在的页面以及您在阵列中的位置,则需要将其拆分。
int page; //what page you are on
int pageIndex; //where the element is on the page
int index; //where you are up to in the array
您将需要另一个案例来了解您是否仍在页面上或页面是否已完成。
if ((index < generation.length)) {
//Graphics code
y += (height of pageIndex) + 10;
if(y > yMax){
y = 0;
pageIndex = 0;
page++;
return PAGE_EXISTS;
} else {
pageIndex++;
return PAGE_NOT_FULL;
}
} else {
return NO_SUCH_PAGE;
}
这可能不是你想要的,但根据你的片段,这是我最好的猜测。