Как добавить JLabel внутри многоугольника? - PullRequest
0 голосов
/ 21 ноября 2011

Я пытаюсь создать изометрическую карту для игры на Java, но не могу найти способ сделать это.Мне нужно добавить JLabel для каждого многоугольника изометрической карты, чтобы я мог использовать paint() для каждой позиции.Как я могу добавить JLabel для каждого многоугольника, который я рисую?Я не могу получить это.У меня уже есть свой алгоритм рисования каждой позиции моей изометрической карты, что-то вроде этого:

//L is the width of the map (that will be the framw width)
//N will be the number of COLUMN, like N*N will be the total number of positions.

//The first position (a,b) that will be

 a=L / (2*N+1)
 b=a . tan(30º

for (int y = 0; y < N; y++) {
     if (y % 2 == 0) { // Se y é PAR
        for (int x = 0; x < N; x++) {
           Polygon p = new Polygon();
           p.addPoint(x * a * 2 + a, y * b);
           p.addPoint(x * a * 2 + 2 * a, y * b + b);
           p.addPoint(x * a * 2 + a, y * b + 2 * b);
           p.addPoint(x * a * 2, y * b + b);
           g.drawPolygon(p);
        }
   } else { // if Y is odd
    for (int x = 0; x < N; x++) {
       Polygon p = new Polygon();
       p.addPoint(x * a * 2 + 2 * a, y * b);
       p.addPoint(x * a * 2 + 3 * a, y * b + b);
       p.addPoint(x * a * 2 + 2 * a, y * b + 2 * b);
       p.addPoint(x * a * 2 + a, y * b + b);
       g.drawPolygon(p);
    }
  }
}

Заранее большое спасибо, ребята

1 Ответ

2 голосов
/ 21 ноября 2011

Макет и рисунок действительно очень разные. Макет не о точном позиционировании. Вы также можете просто использовать drawChars для объекта Graphics в нужной позиции или привести его к объекту Graphics2D и использовать drawString.

...