在两个不同大小的屏幕上运行应用程序时调整 JavaFX 窗口大小



我使用场景生成器在笔记本电脑上创建了一个JavaFX窗口。但是,当我尝试在具有较大屏幕的工作站上运行相同的内容时,JavaFX应用程序不会调整自身大小,而是显示在屏幕的左上方。有什么方法可以在笔记本电脑/工作站屏幕尺寸变化时调整应用程序窗口的大小?

启动 JavaFX 应用程序时,可以使用.setMaximized(true)最大化Stage窗口。无论屏幕尺寸如何,这都将使其"填满屏幕"。如果这样做,请确保使用能够根据不同屏幕尺寸调整大小的布局。

要获得Stage,您可以在Scene上调用.getWindow()并将其投射到Stage。下面是使用我在应用程序中有权访问的Node node的示例:

((Stage) node.getScene().getWindow()).setMaximized(true)

您可以设置一个比率。确定所需的高度比和宽度比。然后获取屏幕的宽度和高度并应用比例。

import javafx.application.Application;
import javafx.geometry.Rectangle2D;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Screen;
import javafx.stage.Stage;
/**
*
* @author blj0011
*/
public class JavaFXApplication287 extends Application
{
@Override
public void start(Stage primaryStage)
{
double heightRatio = .25;
double widthRatio = .30;
Rectangle2D primaryScreenBounds = Screen.getPrimary().getVisualBounds();
double sceneHeight = primaryScreenBounds.getHeight() * heightRatio;
double sceneWidth = primaryScreenBounds.getWidth() * widthRatio;
StackPane root = new StackPane();
Scene scene = new Scene(root, sceneWidth, sceneHeight);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
launch(args);
}
}

相关内容

  • 没有找到相关文章

最新更新