java - 使用 for 循环初始化二维 JPanel 数组

标签 java arrays swing

我对 Java 比较陌生,我正在尝试为学校做作业。在我的任务中,我应该制作一个 GUI 程序,制作一个 8 x 8 的红色和黑色棋盘。我遇到的唯一问题(到目前为止)是初始化 JPanel 的二维数组。我在使用 eclipse 时遇到这个错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7

在我尝试运行代码之前,这不会给出错误。它说错误发生在这个 for 循环的主体中:

JPanel[][] panel = new JPanel[7][7];

for (int i = 0; i <= panel.length; i++){
panel[i][0] = new JPanel();
panel[i][1] = new JPanel();
panel[i][2] = new JPanel();
panel[i][3] = new JPanel();
panel[i][4] = new JPanel();
panel[i][5] = new JPanel();
panel[i][6] = new JPanel();
panel[i][7] = new JPanel();
}

如果我不使用 for 循环,这确实有效,但我真的不想放入 64 个不同的语句来执行此操作。我仔细检查了 panel.length 确实 给出了值 7(这是我想要的)并且即使我实际输入 7 也没有工作。我的代码没有任何语法错误,但我仍然收到错误。还有其他方法我应该去做吗?提前致谢。记住我是新来的。

最佳答案

"make a GUI program that makes a 8 by 8 red and black colored checkerboard. The only problem (so far) that i'm having is initializing a two-dimensional array of JPanels.".

如果你需要做的就是制作电路板,没有其他条件,为什么不直接使用 GridLayout

 JPanel mainPanel = new JPanel(new GridLayout(8, 8));

 for (int i = 0; i < 64; i++){
     JPanel panel = new JPanel();
     // alternate background colors with a predefined boolean and an if
     mainPanel.add(panel);
 } 

关于java - 使用 for 循环初始化二维 JPanel 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20601670/

相关文章:

java - Eclipse 运行配置

java - UnsatisfiedLinkError,但库在路径中

java - 设置android.webkit.Web TextView类的文本颜色?

java - 无法显示jsp

javascript - 我应该使用 JSON 数组还是对象?

java - 如何使用 do 循环查找数组列表中 double 值的平均值?

python - Python-对2D数组中的每个元素执行操作并将其存储在新的2D数组中

java - 使用键盘关闭 JFrame

java - JLayeredPane 不更新 JLabel 的移动

java - 为什么 Java 按钮使用字符串命令而不是枚举?