【发布时间】:2018-09-16 22:58:27
【问题描述】:
以下代码:
// Adds game button container
Object[][] gameButtons = new Object[3][3];
// Adds game buttons to game button container
Arrays.fill(gameButtons, new JButton[3][3]);
for (int i = 0; i < gameButtons.length; i++) {
for (int j = 0; j < gameButtons[i].length; j++) {
for (int k = 0; k < 3; k++) {
for (int l = 0; l < 3; l++) {
gameButtons[i][j][k][l] = new JButton();******
}
}
}
}
给我一个错误: 表达式的类型必须是数组类型,但它解析为 Object。如何初始化 JButton?
编辑:我忘了澄清。错误在 ****** 行被抛出 请注意, ****** 不在我的代码中。 编辑 2:我尝试了 Logan 的修复,但它仍然没有工作:
for (Object[] row : gameButtons)
Arrays.fill(row, new JButton[3][3]);
for (int i = 0; i < gameButtons.length; i++) {
for (int j = 0; j < gameButtons[i].length; j++) {
for (int k = 0; k < 3; k++) {
for (int l = 0; l < 3; l++) {
gameButtons[i][j][k][l] = new JButton();
}
}
}
}
同样的错误,同样的地方。
【问题讨论】:
-
第几行?我假设
Arrays.fill()。 -
尝试:Arrays.fill(gameButtons, new JButton());
-
@TheGuest 不完全——它是一个二维数组
-
你传递了一个一维数组,因为你试图填充一个二维数组。
-
@Logan 什么?请澄清。