java - 有没有办法改变多个项目? 【很难描述,里面有例子】

标签 java

我在如何连贯地表达这一点上遇到了一些困难,所以我只使用一个例子,希望它能传达信息。

以黑白棋游戏为例。我可以对游戏背后的逻辑进行编程,也就是说我可以确定每回合后哪些棋子要改变颜色。

假设 JFrame 上有 64 个面板,每个面板代表黑白棋盘上的一个位置。一轮结束后,我确定面板 5 和 6 需要更改其颜色。

我希望能够做的是通过数组传递 5 和 6,比如说,并有一个遍历数组的 for 循环。

for(int i=0; i < array.length; i++){
   change the image at array[i]
}

因此,仅在 2(在本例中是我需要更改的位置)处检查并进行更改。节省了大量编写代码的时间。

我目前要做的是有一个 for 循环,在 for 循环内我有 64 个 if-else 语句,说

if(panel == 5){
    change the image at 5
}
etc.

我希望这能成功地表达我想要问的问题。如果没有,我很乐意澄清。

最佳答案

您如何存储 64 个子面板?如果您现有的代码将面板引用为 0-63(或 1 - 64)的数字,那么您可以将它们存储在一维数组中,然后您的代码将是:

ImagePanel[] othelloPanels;

void changeImages(int[] indicies) {
    for (int i=0;i<indicies.length;i++) {
        othelloPanels[indicies[i]].change();
    }
}

我本以为将它们存储为二维(8 x 8)数组更有意义,但也许这只是我的想法。

关于java - 有没有办法改变多个项目? 【很难描述,里面有例子】,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4264575/

相关文章:

java - Google App Engine 在 session 范围内丢失 JSP bean 的状态

java - 多个 Java 输入

java - 如何计算具有3个坐标点的类的两个对象之间的距离?

Java Swing 2D小游戏: how to modelize the view?

java - 创建函数以便当前日期以字符串格式显示且没有时间戳的最有效方法是什么?

java - 包装和可见性?

java - 在 Java 中嵌入 Web 浏览器/HTML 引擎

java - 什么是NullPointerException,我该如何解决?

Java通过tcp将进程数组发送到服务器

java - JUnit - 如何对读取目录中的文件并使用外部库的方法进行单元测试