分页问题

时间:2012-05-18 00:29:52

标签: java graphics pagination

我在这里有一些打印代码,每页打印一个数组信息。

    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,同时还能够打印我的数组中的所有元素?

1 个答案:

答案 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;
}

这可能不是你想要的,但根据你的片段,这是我最好的猜测。