JavaFX 获取窗口高宽
JavaFX 是一种用于构建富客户端应用程序的框架,它提供了丰富的图形化界面控件和功能。在开发 JavaFX 应用程序时,有时我们需要获取窗口的高度和宽度来进行相应的布局和绘制操作。本文将介绍如何使用 JavaFX 获取窗口高宽的方法,并提供相应的代码示例。
获取场景(Scene)的窗口(Stage)
在 JavaFX 中,窗口(Stage)是顶级容器,用于包含应用程序的所有内容。而场景(Scene)则是窗口中的主要容器,用于承载应用程序的可视界面。要获取窗口的高度和宽度,我们首先需要获取场景对象。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;
public class WindowSizeExample extends Application {
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Window Size Example");
Button button = new Button("Click Me");
Scene scene = new Scene(button, 400, 300);
primaryStage.setScene(scene);
primaryStage.show();
// 获取场景的窗口
Stage stage = (Stage) scene.getWindow();
}
public static void main(String[] args) {
launch(args);
}
}
在上面的示例代码中,我们创建了一个简单的窗口,并将一个按钮添加到场景中。然后,通过调用 getWindow()
方法,我们获取了场景的窗口对象。
获取窗口的高度和宽度
有了窗口对象后,我们可以使用 getHeight()
和 getWidth()
方法来获取窗口的高度和宽度。
double height = stage.getHeight();
double width = stage.getWidth();
System.out.println("窗口高度:" + height);
System.out.println("窗口宽度:" + width);
上述代码将窗口的高度和宽度分别赋值给 height
和 width
变量,并通过 System.out.println()
方法打印出来。你也可以根据具体需求,将窗口的高度和宽度应用到相应的布局和绘制操作中。
完整代码示例
下面是一个完整的示例代码,演示了如何使用 JavaFX 获取窗口的高度和宽度:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;
public class WindowSizeExample extends Application {
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Window Size Example");
Button button = new Button("Click Me");
Scene scene = new Scene(button, 400, 300);
primaryStage.setScene(scene);
primaryStage.show();
// 获取场景的窗口
Stage stage = (Stage) scene.getWindow();
double height = stage.getHeight();
double width = stage.getWidth();
System.out.println("窗口高度:" + height);
System.out.println("窗口宽度:" + width);
}
public static void main(String[] args) {
launch(args);
}
}
结论
通过使用 JavaFX 提供的方法,我们可以轻松地获取窗口的高度和宽度。这对于实现自适应布局、界面元素的动态调整以及绘制等操作非常有用。希望本文对你理解如何在 JavaFX 中获取窗口大小有所帮助。
参考链接:[JavaFX API 文档]( 源代码链接:[GitHub](
![JavaFX Logo](