Как добавить объекты в сетку снизу вверх?

Я использую представление панели сетки для заполнения сетки с помощью метода 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;
            }
        }
    }

Выход: Как добавить объекты в сетку снизу вверх?

gridPane.add(imageView, x, data[x].length - 1 - y)?
VGR 10.04.2019 02:03

Создайте ответ для этого и примите его.

Sedrick 10.04.2019 15:00

@VGR занимается домашним хозяйством. Не могли бы вы дать ответ, чтобы я мог выбрать, как решено? Спасибо!

Potion 15.01.2020 02:56
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
219
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете добавить каждое изображение в строку относительно нижней строки, то есть data[x].length - 1.

Замените каждый из них:

gridPane.add(imageView, x, y);

с этим:

gridPane.add(imageView, x, data[x].length - 1 - y)

Другие вопросы по теме