Как написать строки и столбцы с DrawString в Java - PullRequest
0 голосов
/ 06 февраля 2010
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 + 10, row + 10, но это не влияет на это. Я переключил col и row с одинаковым эффектом.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 06 февраля 2010

Второй и третий аргумент drawString указаны в пикселях.Вы просто печатаете много X на себе, смещенные на 1 пиксель и снова и снова, поэтому, конечно, все, что вы получите, это большой шарик.

То, что вы хотите, это умножить на ширину / высоту вашегостроки и столбцы как это:

g.drawString("X", col * columnWidth, row * rowHeight);
0 голосов
/ 06 февраля 2010

В этом коде нет ничего плохого. Для этого фрагмента кода, конечно, вы видите желтый прямоугольник, так как X расположены на расстоянии всего 1 пиксель.

Если вы предоставите drawString с достаточными координатами, вы должны увидеть ваш X в этих координатах. Итак, если вы поместите переменные col и row в ваш цикл, как вы объяснили, вы должны увидеть несколько X в нескольких строках / столбцах. (Но не забудьте изменить массив плат в этом случае, так как возможно, что цикл вообще не будет выполняться, если вы расположите их слишком далеко друг от друга).

Может быть, вы можете сказать нам, откуда вы вызываете этот код? Это выполняется в методе paintComponent или вы вызываете его вручную из какого-то другого потока?

...