java - 是否可以用Java创建一个矩形数组

标签 java swing

我正在尝试制作一个非常简单的网格,用户可以在其中移动。通过我的研究,我得出的结论是,实现这一目标的最佳方法是使用二维数组来表示网格。但是,如果我要创建一个矩形数组,我不确定如何将此数组绘制到 Jframe 或 Jpanel。

Example

许多 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/

相关文章:

java - 将 GUI 添加到我的应用程序

java - Swing JLabel 将 unicode "\u21B5 "显示为文本不起作用

java - 如何将 spring bean 注入(inject) Validator(hibernate)

java.lang.NoClassDefFoundError & 转换为 dalvik 格式失败,错误 1 ​​未知问题

java - 字符串中字符的快速排序

java - 如何在 JUNG 图形可视化中添加自定义顶点标签?

java - 隐藏表单A显示表单B,然后隐藏表单B显示表单A Java JFrame

java - 调整 3 列通用组件的布局,其他组件位于上方/下方

java - 使用数据绑定(bind)时,RecyclerView 项目属性会自动更改

Java MySQL 更新查询