JavaFX,Unity3D,Android,IOS等技术教程和生活随笔,仅供记录

http://www.wingmei.cn/wp-content/themes/Vtrois-Kratos-e85a527/images/background.jpg

从零开始学习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 (1)Hello World》

运行程序结果如下:

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

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

点赞
  1. 匿名说道:

    学JavaFx也是抱着对Java的热爱,希望能写出一个好一点的图形界面,awt和swing的话都不太理想。

  2. 匿名说道:

    :smile: 找了好久到没有找到通俗详细的JavaFX教程,不过想想也是,实际开发中,JavaFX似乎并不常用。不过我目前学习JavaFX也主要是为了更好的了解面向对象理论,非常感谢您的分享 :biggrin:

    1. wing1314说道:

      是的,JavaFX面世10年多依然没有火起来,以后应该也没什么希望了。

  3. 匿名说道:

    居然很少人评论 感觉写的很棒

    1. wing1314说道:

      因为最早是在CSDN写的,后来建了个人博客才从CSDN上转移过来的,不过已经很久没做JavaFX开发了。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注