Проблема заключается в том, как создать пользовательский интерфейс, в котором при изменении размера сцены содержимое внутри будет растягиваться или сжиматься, а иногда и опускаться ниже (javafx + построитель сцен)
Как это
Проблема заключается в том, как создать пользовательский интерфейс, в котором при изменении размера сцены содержимое внутри будет растягиваться или сжиматься, а иногда и опускаться ниже (javafx + построитель сцен)
Как это
Вообще говоря, вы хотите избегать использования абсолютных макетов, контейнеров или ограничений, где это возможно. Например, если вы хотите, чтобы 2 кнопки заполнили всю ширину панели макета HBox: нажмите каждую кнопку, перейдите в раздел «Макет» и установите для параметра «Hgrow» значение «ВСЕГДА», а для параметра «Максимальная ширина» — значение «MAX_VALUE». Кнопки всегда будут пытаться занять как можно больше места каждый раз, когда размер окна изменяется. Имейте в виду, что не каждый узел может быть динамически изменен таким образом.
Чтобы принципиально изменить макет (как в вашем клипе, когда изображение в правом верхнем углу удаляется, а вверху остается только статья о Байлсе), вы должны использовать прослушиватель по ширине сцены, например:
stage.widthProperty().addListener((obs, old, new) -> {
...
});
Затем в теле вы можете проверить, меньше ли новое значение некоторой константы, и соответственно установить ограничения макета.
Я надеюсь, что этот ответ поможет вам :) Если нет, не стесняйтесь комментировать!
fitWidthProperty
к widthProperty
рабочей области. То же самое можно сделать для свойств высоты. Более подробная информация по этой теме уже доступна на stackoverflow. Возможно, обратитесь к этому.
- person HackBrettHB; 28.07.2021
ImageView
. - person Sedrick   schedule 28.07.2021media query
с фильтром ширины. На основе изменения этого параметра (ширины окна) создается другой макет (в примере только сCSS
). Тот же подход можно реализовать вjavafx
, начиная с отслеживания измененийStage::widthProperty
. - person mr mcwolf   schedule 30.07.2021