我使用场景生成器在笔记本电脑上创建了一个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);
}
}