如何在Java中使用drawString编写行和列

时间:2010-02-05 23:03:29

标签: java drawstring

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。

谢谢。

2 个答案:

答案 0 :(得分:4)

drawString第二个和第三个参数以像素为单位。你只是自己打印很多X,一次又一次地偏移1个像素,所以当然你得到的只是一个大块。

你想要的是乘以你的行和列的宽度/高度,如下所示:

g.drawString("X", col * columnWidth, row * rowHeight);

答案 1 :(得分:-1)

此代码没有任何问题。对于这段代码,当然你会看到黄色矩形,因为Xs只相隔1个像素。

如果你为drawString提供足够的坐标,你应该在那个坐标处看到你的X.因此,如果您像在解释的那样在循环中对col和row变量进行空间分类,则应该会在多行/列中看到多个X. (但是在这种情况下不要忘记更改电路板阵列,因为如果将它们隔开太远,可能根本不会执行循环)。

也许您可以告诉我们您从哪里调用该代码?它是在paintComponent方法中执行还是从其他线程手动调用它?