从零开始学习JavaFX (1)Hello World

每一种语言,让我们最好入门的方式自然是“Hello World”。 在第一节中,我们将会学习,在JavaFX中创建Hello World程序。

代码如下:

package helloworld;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
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 btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                System.out.println("Hello World!");
            }
        });
        StackPane root = new StackPane();
        root.getChildren().add(btn);
        Scene scene new Scene(root, 300, 250);
        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}

 

这里,我们将会讲解一个JavaFX程序的基础结构。

1.JavaFX的主类继承与 javafx.application.Application类。start()方法为JavaFX程序的主入口。

2.JavaFX中,使用Stage和Scene来作为UI的容器。其中,Stage类是JavaFX中的顶层容器。而Scene类则是JavaFX中所有内容的容器,例如UI控件等,都是直接添加到Scene中的。在上面得例子里,我们创建了Scene让它以特定的大小显示出来。

3. 在上例中,根节点为StackPane,是一个可变大小的节点。这意味着,这个根节点的大小受Scene大小的影响,并且当Stage大小被用户改变时,它也会一同改变。

4.这个根节点包含一个子节点,一个Button,在上例中,我们给button添加了一个事件,点击时会打印一些内容。

5.当JAR文件是使用JavaFX Packager Tools来创建的时候,JavaFX程序并不需要main()方法。因为这时候 JavaFX Launcher会嵌入在JAR文件中。但是无论如何,包含main()将会非常有用,我们可以运行任何并没有JavaFX Launcher的JavaFX JAR程序。另外,如果有Swing嵌入在JavaFX代码中,那么main()方法将是必须的。

运行程序结果如下:

第一节结束了,大家也应该了解了JavaFX的程序结构,并且可以写出基本的JavaFX程序了。

发表评论

电子邮件地址不会被公开。