我已经重新开始我的国际象棋游戏,现在面临着新的问题。就像我试图在问题标题中解释的那样;
我做了 64 个方格,就像通常的棋盘一样。它们由一个数组给出数字,现在我想在棋盘上的 3 号方格中添加一块。
我的代码:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Frame;
import java.awt.GridLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Chess extends JPanel implements config {
/**
* @param <MyMethods>
* @param args
*/
public static void main(String[] args) {
int[] squareArray;
squareArray = new int[64];
int i = 0;
JFrame frame = new JFrame("Chessboard");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new GridLayout(SQUARE / ROWS, 0, 2, 2));
for (i = 0; i < SQUARE; i++) {
squareArray[i] = i;
JPanel b = new JPanel(new BorderLayout());
frame.add(b);
int row = (i / 8) % 2;
if (row == 0) {
b.setBackground(i % 2 == 0 ? config.P1Color : config.P2Color);
} else {
b.setBackground(i % 2 == 0 ? config.P2Color : config.P1Color);
}
frame.setSize(800, 800);
frame.setVisible(true);
}
JLabel piece = new JLabel(new ImageIcon("pawn.png"));
JPanel panel = (JPanel) i.getComponent(3);
panel.add(piece);
}
}
错误发生在代码底部的“ JPanel panel = (JPanel) i.getComponent(3); ”处。错误是这样的;“我无法解决”。
我有一种感觉,我把这里的事情搞砸了,开始处理我没有能力处理的事情。我的猜测是 getComponent 是访问数组的错误方法,或者i .getComponent(3) 是使用错误的变量。
非常感谢所有帮助,如果我忘记在此处添加内容,请随时问我。我必须承认我很抱歉问了这些愚蠢的问题,但我发现理解 Java 并使用它真的非常非常困难。