У меня есть GridPane, который имеет два столбца: сначала содержит ImageView с фиксированным размером, второй - VBox с текстовыми элементами. Мне нужен этот VBox, чтобы он соответствовал ширине столбца. Сетка имеет правильные размеры, ImageView тоже, но VBox во втором столбце соответствует тексту, который он содержит, а не к parent (grid).Подгонка VBox к родительскому GridPane
VBox box = new VBox();
// all three texts can be changed during program execution by user
// (so 'box' width cannot be based on children widths)
box.getChildren().addAll(new Text("1"), new Text("2"), new Text("3"));
box.setStyle("-fx-background-color: red;");
Image image = ...; // image is always 150x150 px
ImageView imgView = new ImageView(image);
GridPane grid = new GridPane();
grid.add(imgView, 0,0);
grid.add(box,1,0);
grid.add(new Text("another content"), 0,1,2,1);
В соответствии с данным примером я хочу, чтобы «ящик» имел ту же ширину, что и второй столбец «сетки». Как это исправить?
Контейнер с зеленой границей: GridPane сетка Контейнер с LightBlue границей: VBox коробка GridPane имеет красный фон, VBox имеет розовый фон. Вы можете видеть, что он явно НЕ соответствует его родительской ширине.
Заранее спасибо
Предоставьте [mcve] (http://stackoverflow.com/help/mcve), например. файл FXML (если вы используете FXML) или код Java (если вы этого не сделали). – jewelsea
содержание отредактировано.Надеюсь, теперь ясно. –
Вы хотите, чтобы VBox имел ту же ширину, что и «ImageView»? Что такое «вторая колонка»? Согласно предоставленному коду, VBox находится во втором столбце. – ItachiUchiha