Нарисуйте доску, расширяя JPanel - PullRequest
1 голос
/ 17 апреля 2011

Я хочу нарисовать доску, которая выглядит следующим образом:

enter image description here

путем расширения JPanel :

import javax.swing.*;
import java.awt.Graphics;

class GoBoard extends JPanel{
    private int lines;

    public GoBoard(){
        this.lines = 9;
    }

    public GoBoard(int pLines){
        this.lines = pLinien;
    }

    public void paint(Graphics g){
        super.paint(g);

        int d = 0;
        int h = 0;

        for(int i = 0; i < this.lines+1; i++){
            g.drawLine(0,h, getWidth(), h);
            g.drawLine(h,0,h,getHeight());

            h += getHeight()/this.lines;
        }
    }
}

Для 9Линии, которые я придумал, это:

enter image description here

Какой макет я должен использовать, чтобы получить пространство вокруг доски?В моем примере я использовал макет блока, выравнивая некоторые метки вокруг jpanel.

Как мне изменить метод рисования, чтобы получить сетку, которую вы видите на первом рисунке?Кажется, мне не хватает двух последних строк.

1 Ответ

2 голосов
/ 17 апреля 2011

Причина, по которой ваша сетка не выглядит законченной в направлении x, заключается в том, что вы используете одинаковое приращение

h += getHeight()/this.lines;

для каждого направления, но каждое направление имеет свой размер.Так что либо сделайте доску квадратной, либо сделайте разные приращения в каждом направлении.

...