Java - Создание 2D-карты тайлов на панели с помощью Graphics2D Rectangles?

Я пытаюсь смоделировать битву в действительно простой программе, но так как я впервые с большой программой на Java, я почти не знаю, как действовать дальше. Я думал, что у меня будет большая панель 600 на 600 и я буду использовать Graphics2D, чтобы просто рисовать ландшафт в виде прямоугольников размером 20х20 ... К сожалению, даже с несколькими уроками я понятия не имею, что делать.

У меня есть 10 различных типов местности, чтобы проехать, и 5 разных ландшафтных профилей. По сути, я хочу, чтобы программа работала, когда я выбираю определенный профиль в поле со списком, он рисует ландшафт и две противоположные стороны в битве (хотя я еще не совсем там)

Честно говоря, я не достиг большого прогресса в программе. Должен ли я использовать просто Graphics2D и прямоугольники для чего-то вроде этого, или я должен перейти на OpenGL или что-то подобное? Хотя с моим нынешним опытом работы с Java, я не думаю, что смогу справиться с этим без посторонней помощи. В любом случае, вот что у меня есть:

public class Map extends JPanel {
    int n = 1;
    int x; int y;
    int Area = 750;
    public Color City = new Color(214,217,223);
    public Color Desert = new Color(255,204,102);
    public Color DirtRoad = new Color(153,102,0);
    public Color Forest = new Color(0,102,0);
    public Color Hills = new Color(51,153,0);
    public Color Lake = new Color(0,153,153);
    public Color Mountains = new Color(102,102,255);
    public Color Ocean = new Color(0,0,153);
    public Color PavedRoad = new Color(51,51,0);
    public Color Plains = new Color(102,153,0);
    public Rectangle blocks[];
    public Map(){
        blocks = new Rectangle[750];
        if (n == 1) {
            setBackground(City);
            n = 2;
        } else if (n == 2) {
            setBackground(Desert);
            n = 3;
        } else if (n == 3) {
            setBackground(DirtRoad);
            n = 4;
        } else if (n == 4) {
            setBackground(Forest);
            n = 5;
        } else if (n == 5) {
            setBackground(Hills);
            n = 6;
        } else if (n == 6) {
            setBackground(Lake);
            n = 7;
        } else if (n == 7) {
            setBackground(Mountains);
            n = 8;
        } else if (n == 8) {
            setBackground(Ocean);
            n = 9;
        } else if (n == 9) {
            setBackground(PavedRoad);
            n = 10;
        } else if (n == 10) {
            setBackground(Plains);
            n = 1;
        } else {
        }
        for (int i = 1; i <= Area; i++) {
            blocks[i] = new Rectangle(x, y, 20, 20);
        }
    }

Я дошел до этого с несколькими уроками Youtube, так что мой код немного ошибочен. Все, что у меня есть в основном коде формы, это событие запуска checkBox. (GUI предварительно разработан в редакторе Netbeans.)

Ответы на вопрос(2)

Ваш ответ на вопрос