Как добавить объекты в сетку снизу вверх? - PullRequest
0 голосов
/ 10 апреля 2019

Я использую вид панели сетки, чтобы заполнить сетку, используя метод add ().По замыслу add () сетка заполняет каждую строку сверху вниз, где местоположение (0,0) находится в самом верхнем левом углу большей части сетки.Добавление дополнительных строк затем добавляется под ним и так далее.Можно ли заполнить мою сетку так, чтобы первый ряд находился внизу, и добавить ряды вверх, чтобы местоположение (0,0) находилось внизу слева?Что нужно для этого?Я посмотрел на различные методы в GridPane, но не смог найти, как это сделать.Я догадываюсь, что мне нужно переопределить метод add (), но я не уверен, как реализовать это поведение.

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

ВотСуть кода, извлеченного из классов и вспомогательных методов для простоты:

public enum LawnType
{
    GRASS,
    CRATER
}

lawnData = new LawnType[][] {
        {CRATER,GRASS,GRASS,GRASS,GRASS,GRASS,},
        {GRASS,GRASS,GRASS,GRASS,GRASS,GRASS,},
        {GRASS,GRASS,GRASS,GRASS,GRASS,GRASS,},
        {GRASS,GRASS,GRASS,GRASS,GRASS,GRASS,},
        {GRASS,GRASS,GRASS,GRASS,GRASS,GRASS,},
        {GRASS,GRASS,GRASS,GRASS,GRASS,GRASS,},
    };

GridPane lawnViewer = new GridPane();

for (int x = 0 ; x < data.length ; x++) {
    for (int y = 0 ; y < data[x].length ; y++) {
        ImageView imageView;

        switch(data[x][y]){
            case GRASS:
                imageView = new ImageView(new Image("mower/resources/longgrass1.png"));
                imageView.setFitWidth(gridPixelSize);
                imageView.setFitHeight(gridPixelSize);
                gridPane.add(imageView,x,y);
                break;
            case CRATER:
                imageView = new ImageView(new Image("mower/resources/crater.png"));
                imageView.setFitWidth(gridPixelSize);
                imageView.setFitHeight(gridPixelSize);
                gridPane.add(imageView, x, y);
                break;
            default:
                break;
            }
        }
    }

Вывод: enter image description here

...