Я использую представление панели сетки для заполнения сетки с помощью метода 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;
}
}
}
Создайте ответ для этого и примите его.
@VGR занимается домашним хозяйством. Не могли бы вы дать ответ, чтобы я мог выбрать, как решено? Спасибо!
Вы можете добавить каждое изображение в строку относительно нижней строки, то есть data[x].length - 1
.
Замените каждый из них:
gridPane.add(imageView, x, y);
с этим:
gridPane.add(imageView, x, data[x].length - 1 - y)
gridPane.add(imageView, x, data[x].length - 1 - y)
?