以下代码创建了一个简单的用户界面,其中包含一个单击即可在控制台上Button打印一个的用户界面String。
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Alert; import javafx.scene.control.Alert.AlertType; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class HelloWorld extends Application { @Override public void start(Stage primaryStage) { // 创建具有指定文本的按钮 Button button = new Button("Say 'Hello World'"); // 设置当用户激活按钮时执行的处理程序 // 例如,通过单击它或在焦点对准时按Enter button.setOnAction(e -> { //打开信息对话框,打个招呼 Alert alert = new Alert(AlertType.INFORMATION, "Hello World!?"); alert.showAndWait(); }); // 主窗口中显示的场景的根 StackPane root = new StackPane(); // 将按钮添加为根的子代 root.getChildren().add(button); // 创建一个指定根和大小的场景 Scene scene = new Scene(root, 500, 300); // 将场景添加到舞台 primaryStage.setScene(scene); // 使舞台可见 primaryStage.show(); } public static void main(String[] args) { // 启动HelloWorld应用程序。 // 由于此方法是HelloWorld类的成员,因此第一个 // 不需要参数 Application.launch(HelloWorld.class, args); } }
该Application班是每一个JavaFX应用程序的入口点。只能Application启动一个,并且可以使用
Application.launch(HelloWorld.class, args);
这将创建Application作为参数传递的类的实例,并启动JavaFX平台。
以下内容对于此处的程序员很重要:
首先launch创建Application该类的新实例(HelloWorld在这种情况下)。Application因此,该类需要一个无参数的构造函数。
init()在Application创建的实例上调用。在这种情况下,from的默认实现Application不执行任何操作。
start为Appication实例调用,然后将主Stage窗口(=窗口)传递给该方法。在JavaFX Application线程(平台线程)上自动调用此方法。
该应用程序将运行,直到平台确定是该关闭为止。在这种情况下,当最后一个窗口关闭时,将完成此操作。
该stop方法在Application实例上调用。在这种情况下,from的实现Application不执行任何操作。在JavaFX Application线程(平台线程)上自动调用此方法。
在该start方法中,构建了场景图。在这种情况下,它包含2 Nodes:AButton和a StackPane。
该Button表示在用户界面中按钮和StackPane是用于一个容器Button,它确定它的位置。
Scene创建A来显示这些Node。最后,Scene将添加到Stage显示整个UI的窗口。