我正在尝试制作一个非常简单的网格,用户可以在其中移动。通过我的研究,我得出的结论是,实现这一目标的最佳方法是使用二维数组来表示网格。但是,如果我要创建一个矩形数组,我不确定如何将此数组绘制到 Jframe 或 Jpanel。
许多 Stackoverflow 问题似乎都会提出类似的问题,但不幸的是我发现没有完全解释如何绘制简单的矩形网格。
最佳答案
你可以用任何东西来制作数组。注意数组的实现方式是怎样的
*datatype* [] *arrayname* = new *datatype* [*lengthOfArray*];
假设包含矩形的类的名称是 RECTANGLE。因此,如果您想要一个包含 5 个矩形的数组,它看起来有点像这样:
RECTANGLE [] rectangelArray = new RECTANGLE [5];
如果您想将其带到二维级别,只需添加另一个括号:
RECTANGLE [][] rectangelMatrix = new RECTANGLE [4][5];
假设“绘制到 JPanel”意味着您要将矩形放到屏幕上,那么您将在 for 循环中包含一个 for 循环,例如调用每个矩形来绘制自身:
for(int i = 0; i<rectangleMatrix.length; i++){
for(int j = 0; j<rectangleMatrix[i].length; j++){
rectangleMatrix[i][j].draw();
}
}
rectangleMatrix.draw()
调用一个根据坐标和大小绘制矩形的方法。您还可以以类似的方式调用一个方法,该方法将读取每个矩形的信息,然后根据该信息绘制它。这将帮助您区分类(class)中的信息和绘图目的,这始终是一件好事:
for(int i = 0; i<rectangleMatrix.length; i++){
for(int j = 0; j<rectangleMatrix[i].length; j++){
drawRectangle(rectangleMatrix[i][j]);
}
}
drawRectangle(RECTANGLE toDraw) 与带有 for 循环的方法位于同一个类中。
关于java - 是否可以用Java创建一个矩形数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23758778/