JavaFX Как установить максимальный / минимальный размер окна?

работает ли setMinSize () на контейнерах, например, GridPane? Я обнаружил, что в моей программе GridPane игнорирует min. свойства размера при изменении размера вручную. Вот код FXML:

<GridPane fx:id="gp" prefHeight="134.0" prefWidth="238.0" xmlns:fx="http://javafx.com/fxml" fx:controller="javafxapplication12.SampleController">
  <columnConstraints>
    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
  </columnConstraints>
  <rowConstraints>
    <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
    <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
    <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
  </rowConstraints>
</GridPane>

и класс контроллера

public class SampleController implements Initializable {

    @FXML
    private GridPane gp;

    @Override
    public void initialize(URL url, ResourceBundle rb) {
    gp.setMaxWidth(700);
    gp.setMinSize(200, 200);
    }   

что здесь не так? Должен ли быть какой-то "оконный" максимальный/минимальный размер?

1 ответов


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

размер окна может отличаться от размера корневого контейнера для сцены. Вы можете думать о окне или сцене как о независимом окне просмотра сцены, которое может быть больше или меньше, чем минимальные и максимальные спецификации корня сцены.

чтобы установить минимальный или максимальный размер сцены, установите его свойство minheight и свойство minwidth или значение maxheight и значение maxwidth свойства.

ответы на дополнительные вопросы

можно установить этап к размеру "дисплея пригонки всему"?

stage.setFullScreen(true)

но как сделать размер таким же, как мы делаем размер, нажав на строку заголовка?

stage.setMaximized(true)