我正在开发一个JavaFX应用程序(使用Java版本8u51)并且我将其设为resizable
但是我现在拥有的默认行为不是所需的行为。问题是我能够resize
超出屏幕分辨率范围。换句话说,我可以使Stage
大于我的屏幕。有没有办法将resize
限制为当前的显示器分辨率?我必须提到我需要这个才能处理任何分辨率和任何屏幕尺寸。
答案 0 :(得分:4)
是的,但是如果用户想要再次调整它...更小,应该允许此操作。
在这种情况下,您需要在启动应用时设置舞台的实际大小,并允许最大允许调整大小。
@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();
}
在这里:
stage.setWidth(bounds.getWidth());
stage.setHeight(bounds.getHeight());
stage.setMaxWidth(bounds.getWidth() * 2);
您可以设置所需的尺寸。您甚至可以按stage.setMinWidth()
和/或stage.setMinHeight()
设置舞台的最小尺寸。
答案 1 :(得分:2)
通过Screen
API,您可以找到运行时可用的不同物理屏幕,bounds(包括其大小)和dots per inch中的分辨率。然后,您可以相应地设置舞台上的最大width和height。
(我并不十分清楚你的意思是"将其调整到超出屏幕分辨率范围",但这应该会为您提供API来实现您想要做的事情。 )