【问题标题】:JavaFX: Allow window resizing in one direction onlyJavaFX:只允许在一个方向调整窗口大小
【发布时间】:2020-02-25 08:17:49
【问题描述】:

可以使用javafx.stage.Stage.setResizable(boolean) 方法更改JavaFX 阶段的可调整大小状态。


问题

是否有可能只允许水平或垂直调整大小?


有诸如Stage.setMaxWidthStage.setMaxHeightStage.setMinWidthStage.setMinHeight 之类的方法,但它们只能用于控制固定大小的舞台的大小调整(例如,通过设置width = minWidth = maxWidth 来禁止水平调整大小)。

【问题讨论】:

  • “但它们只适用于固定大小的舞台”是什么意思?
  • @M.S.查看更新。
  • 你的意思是它只有在你有一个预定义的固定宽度时才会起作用?
  • @M.S.是的......
  • 在你的情况下初始宽度可以吗?我的意思是你想在舞台初始化后保持初始宽度吗?

标签: java javafx window


【解决方案1】:

您可以像这样阻止外部更改高度的尝试:

stage.show();
stage.maxHeightProperty().bind(stage.heightProperty());
stage.minHeightProperty().bind(stage.heightProperty());

宽度相同:

stage.maxWidthProperty().bind(stage.widthProperty());
stage.minWidthProperty().bind(stage.widthProperty());

通过这种方式,您可以在内容更改时在内部调整其大小(例如,调用 sizeToScene())。

【讨论】:

    猜你喜欢
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 2016-06-01
    • 1970-01-01
    • 2018-02-07
    相关资源
    最近更新 更多