【问题标题】:JavaFX How to set max/min window size?JavaFX 如何设置最大/最小窗口大小?
【发布时间】:2023-04-11 08:01:01
【问题描述】:

setMinSize() 是否适用于 GridPane 等容器?我发现在我的程序中GridPane 忽略了最小值。手动调整大小时的大小属性。

这是 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);
    }
}

这里有什么问题?是否应该有某种“窗口”最大/最小尺寸?

【问题讨论】:

  • 您如何将网格窗格添加到场景中?网格窗格的父布局容器在这里很重要。一些容器布局他们的孩子,而另一些则没有。

标签: javafx-2 fxml


【解决方案1】:

我假设你所说的窗口是指Stage(它是Window 的子类)。

窗口大小可能与场景的根容器大小不同。您可以将窗口或舞台视为场景中的独立视口,其大小可以大于或小于场景根的最小和最大规格。

要设置舞台的最小或最大大小,请设置其minHeightminWidthmaxHeightmaxWidth 属性。

其他问题的答案

Stage 可以设置为“适合整个显示器”大小吗?

stage.setFullScreen(true)

但是如何让尺寸和我们点击标题栏的尺寸一样呢?

stage.setMaximized(true)

【讨论】:

  • 嗨。那么我可以在 FXML 文件中的某个地方设置这些阶段值吗?例如,是否有 元素?
  • 舞台能否设置为“适合整个显示器”尺寸?
  • 那会很有趣@will
  • @will,调用stage.setFullScreen(true) 来“适应整个显示器”。
  • 但是如何让尺寸和我们点击标题栏的尺寸一样呢?
猜你喜欢
  • 1970-01-01
  • 2019-02-25
  • 2013-10-05
  • 2013-09-09
  • 1970-01-01
  • 2010-10-11
  • 1970-01-01
  • 2019-07-09
  • 2022-11-28
相关资源
最近更新 更多