我正在尝试将ArrayList
的图标网格绘制到我的canvas
每10个图标后面,下一个图标将显示在新行上,但似乎无法获得它工作正常。第一个图标的起始X和Y位置为100,100:
int x = 32; // Dimensions of icons
int y = x;
for (int pos = 0; pos < icons.getIcon().size(); pos++)
{
if(pos % 10 == 0)
{
icons.getIcon().get(pos).paintIcon(canvas, graphics, posX, posY);
}
else
{
icons.getIcon().get(pos).paintIcon(canvas, graphics, posX, posY);
posX += x + 10;
}
}
这将显示水平行中的每个图标,但无法弄清楚如何在新行开始后获得第11个和第10个。
答案 0 :(得分:1)
当你发现它是第11个图标时,你只是忘了添加“换行符”。这样的事情:
int x = 32; // Dimensions of icons
int y = x;
int posX = 100;
int posY = 100;
for (int pos = 0; pos < icons.getIcon().size(); pos++) {
if(pos % 10 == 0) {
posY += y + 10;
posX = 100; // Returns posX back to the left-most position
icons.getIcon().get(pos).paintIcon(canvas, graphics, posX, posY);
} else {
icons.getIcon().get(pos).paintIcon(canvas, graphics, posX, posY);
}
posX += x + 10; // Do that out of the if, so that posX is incremented either way
}