我已经使用场景生成器在笔记本电脑上创建了JavaFX窗口。但是,当我尝试在具有较大屏幕的工作站上运行JavaFX窗口时,JavaFX应用程序不会自动调整大小,而是显示在屏幕的左上方。 。当笔记本电脑/工作站的屏幕尺寸变化时,是否可以通过任何方式调整应用程序窗口的大小?
答案 0 :(得分:0)
启动JavaFX应用程序时,可以使用Stage
最大化.setMaximized(true)
窗口。无论屏幕大小是多少,这都将使其“充满屏幕”。如果这样做,请确保使用可以在不同屏幕尺寸下调整大小的布局。
要获取Stage
,可以在.getWindow()
上调用Scene
并将其转换为当前的Stage
。这是一个使用Node node
我可以在我的应用程序中访问的示例:
((Stage) node.getScene().getWindow()).setMaximized(true)
答案 1 :(得分:0)
您可以设置一个比率。确定您想要的高度比例和宽度比例。然后获取屏幕的宽度和高度并应用比例。
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);
}
}