gpt4 book ai didi

java - 如何在游戏板的二维数组中将数字绘制到面板上

转载 作者:行者123 更新时间:2023-11-29 03:50:11 26 4
gpt4 key购买 nike

如何在游戏板的二维数组中将数字绘制到面板上?

import javax.swing.*;
import java.awt.*;

public class board2 extends JFrame {

JFrame frame;
JPanel squares[][] = new JPanel[10][10];

public board2() {

setSize(500, 500);
setLayout(new GridLayout(10, 10));

for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
squares[i][j] = new JPanel();

if ((i + j) % 2 == 0) {
squares[i][j].setBackground(Color.black);
} else {
squares[i][j].setBackground(Color.white);
}
add(squares[i][j]);
}
}
}
}

我想按照显示的方式给面板编号 here .

最佳答案

总结:您应该为每个显示数字的面板添加一个标签。

几点:

  1. 如果您的类扩展了 JFrame,则不需要将其作为成员变量。
  2. 目前尚不清楚您是否将框架设置为在任何地方可见(也许您只是没有在您的示例中包含该代码。我提出这个问题是因为没有声明实际错误的地方)到目前为止您的代码 - 所以也许它只是立即出现,所以 setVisible(true) 很重要。
  3. 如果您想添加数字,您需要在迭代时为每个数字添加一个 JLabel。最好让这些 JLabel 实例的前景交替出现。您可以通过使用 ij 计数器来计算您的方 block 数来创建标签。

最好将编号机制封装在一个单独的方法中,因为您已经注意到规范要求交替行从左或右计数。类似于以下内容:

    JLabel label = new JLabel(getCellNumber(((i*10)+j),10) + "");

getCellNumber() 方法的粗略版本可能如下所示:

private int getCellNumber(int id, int columnCnt) {
int rowID = (id) / columnCnt;
int colID = (id) % columnCnt;
if (rowID %2 == 1) {
colID = columnCnt - colID;
} else {
colID++;
}
return 101 - ((rowID * columnCnt) + colID);
}

关于java - 如何在游戏板的二维数组中将数字绘制到面板上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9146015/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com