停止调整大小超出屏幕分辨率范围 (JavaFX)

Rob*_*ert 0 css java user-interface javafx

我正在开发一个 JavaFX 应用程序(使用 Java 版本 8u51)并且我成功了,resizable但是我现在拥有的默认行为不是想要的行为。问题是我能够resize超出屏幕分辨率范围。换句话说,我可以制作Stage比我的屏幕更大的。有没有办法限制resize当前的显示器分辨率?我不得不提一下,我需要它来处理任何分辨率和任何屏幕尺寸。

Tir*_* Ns 5

是的,但是如果用户想再次调整它的大小...更小,应该允许此操作。

在这种情况下,您需要设置应用启动时舞台的实际大小和允许的最大可调整大小。

@Override
public void start(Stage stage) throws Exception {

    Scene scene = new Scene(new Pane());
    stage.setScene(scene);

    Rectangle2D bounds = Screen.getPrimary().getVisualBounds();

    stage.initStyle(StageStyle.DECORATED);
    stage.setX(bounds.getMinX());
    stage.setY(bounds.getMinY());
    stage.setWidth(bounds.getWidth());
    stage.setHeight(bounds.getHeight());
    stage.setMaxWidth(bounds.getWidth() * 2);
    stage.show();
}
Run Code Online (Sandbox Code Playgroud)

在这里:

stage.setWidth(bounds.getWidth());
stage.setHeight(bounds.getHeight());
stage.setMaxWidth(bounds.getWidth() * 2);
Run Code Online (Sandbox Code Playgroud)

你可以设置你想要的大小。您甚至可以通过stage.setMinWidth()和/或设置舞台的最小尺寸stage.setMinHeight()