public void drawboard(Graphics g){
g.setColor(Color.yellow);
for (int row = 0; row < board.length; row++){
for (int col = 0; col < board[row].length; col++){
g.drawString("X", col, row);
}
}
我得到的是一个35x30的黄色正方形(程序另一部分中的行和col的变量)。我根本看不到任何“X”。我试图将它分开,以防它与col + 10,row + 10一起被捣碎,但它不会影响它。我用相同的效果切换了col和row。
谢谢。
答案 0 :(得分:4)
drawString第二个和第三个参数以像素为单位。你只是自己打印很多X,一次又一次地偏移1个像素,所以当然你得到的只是一个大块。
你想要的是乘以你的行和列的宽度/高度,如下所示:
g.drawString("X", col * columnWidth, row * rowHeight);
答案 1 :(得分:-1)
此代码没有任何问题。对于这段代码,当然你会看到黄色矩形,因为Xs只相隔1个像素。
如果你为drawString提供足够的坐标,你应该在那个坐标处看到你的X.因此,如果您像在解释的那样在循环中对col和row变量进行空间分类,则应该会在多行/列中看到多个X. (但是在这种情况下不要忘记更改电路板阵列,因为如果将它们隔开太远,可能根本不会执行循环)。
也许您可以告诉我们您从哪里调用该代码?它是在paintComponent方法中执行还是从其他线程手动调用它?