舞台(Stage)
舞台(Stage)是JavaFX用户接口的顶级容器,用Stage
类表示。在Windows中,它通常就是一个窗口。当JavaFX启动时,一个舞台被自动创建,并通过参数传递给start
方法。
@Override public void start(Stage primaryStage) {
// do something
}
我们可以给舞台设置场景(Scene),场景可以添加控件和其他用户接口节点。通过这种方式,我们创建应用程序的用户界面。
Stage
类包含了许多方法用于控制舞台外观和行为。其中,常用的方法有
- 对于绝大多数应用,必须使用下面三个方法
setScene
:舞台必须有一个场景,该函数用于设置舞台的场景setTitle
:舞台应该有一个标题,该函数用于设置舞台(窗口)的标题show
:调用该方法后,舞台才会被显示
- 禁止用户调整舞台尺寸。默认情况下,窗口是大小可调的,如果想禁止,使用方法
primaryStage.setResizeable(false)
- 如何舞台可调尺寸,可以设置最大和最下尺寸
primaryStage.setMinWidth(200)
primaryStage.setMinHeight(200)
primaryStage.setMaxWidth(600)
primaryStage.setMaxHeight(600)
- 最大化方式显示窗口
primaryStage.setFullStage(true)
- 将窗口最小化到图标
primaryStage.setIconified(true)
- 关闭窗口
close
方法
场景(Scene)
在应用程序中,必须最少有一个场景用以管理控件和其他节点。对于场景,常用的操作包括
- 创建
Scene
对象,并指定根节点(node)
Scene(Parent root)
void setRoot(Parent root)
- 设置场景的初始大小
Scene(Parent root, double width, double, height)
- 获取场景的大小和位置
double getX()
double getY()
double getHeight()
double getWidth()
一般来说,如果场景的尺寸不小于舞台的最小尺寸或大于舞台的最大尺寸,场景的尺寸决定了舞台的尺寸。当用户调整舞台尺寸时,场景的尺寸也会随着调整。
示例-创建舞台和场景
public void start(Stage primaryStage) {
// 创建button对象
btn = new Button();
btn.setText("Click me please!");
btn.setOnAction(e -> buttonClick());
// 添加布局(layout)pane
BorderPane pane = new BorderPane();
pane.setCenter(btn);
// 添加场景(scene)并设置布局
Scene scene = new Scene(pane, 300, 250);
// 创建并显示舞台(stage)
primaryStage.setScene(scene);
primaryStage.setTitle("The Click Me App");
primaryStage.show();
}