JavaFX 第一个JavaFX应用程序

在这里,我们正在创建一个简单的 JavaFX 应用程序,该应用程序通过单击上显示的按钮在控制台上打印hello world。

第 1 步:继承javafx.application.Application并覆盖start()

正如我们之前研究过的,start()方法是构建 JavaFX 应用程序的起点,因此我们需要首先覆盖javafx.application.Application类的start 方法。类javafx.stage.Stage 的对象被传递给start()方法,因此导入这个类并将其对象传递给 start 方法。需要导入JavaFX.application.Application以覆盖 start 方法。

代码将如下所示。

package com.yiidian;

import javafx.application.Application;
import javafx.stage.Stage;
/**
 * 一点教程网: http://www.yiidian.com
 */
public class Hello_World extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {

    }
}

第 2 步:创建一个按钮

可以通过实例化 javafx.scene.control.Button 类来创建按钮。为此,我们必须将此类导入到我们的代码中。在 Button 类构造函数中传递按钮标签文本。

代码将如下所示。

package com.yiidian;

import javafx.application.Application;
import javafx.scene.control.Button;
import javafx.stage.Stage;
/**
 * 一点教程网: http://www.yiidian.com
 */
public class Hello_World extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        Button btn1 = new Button("Say, Hello World");
    }
}

第 3 步:创建布局并向其添加按钮

JavaFX 提供了布局的数量。我们需要实现其中之一才能正确地可视化小部件。它存在于场景图的顶层,可以看作是一个根节点。所有其他节点(按钮、文本等)都需要添加到此布局中。

在这个应用程序中,我们实现了StackPane布局。可以通过实例化 javafx.scene.layout.StackPane 类来实现。

代码现在将如下所示。

package com.yiidian;

import javafx.application.Application;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
/**
 * 一点教程网: http://www.yiidian.com
 */
public class Hello_World extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        Button btn1 = new Button("Say, Hello World");
        StackPane root=new StackPane();
        root.getChildren().add(btn1);
    }
}

第 4 步:创建Scene场景

需要将布局添加到Scene场景中。场景仍处于应用程序结构层次结构中的较高级别。它可以通过实例化javafx.scene.Scene类来创建。我们需要将布局对象传递给场景类构造函数。我们的应用程序代码现在如下所示。

package com.yiidian;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
/**
 * 一点教程网: http://www.yiidian.com
 */
public class Hello_World extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        Button btn1 = new Button("Say, Hello World");
        StackPane root=new StackPane();
        root.getChildren().add(btn1);
        Scene scene=new Scene(root);
    }
}

我们还可以在 Scene 类构造函数中传递场景所需舞台的宽度和高度。

第 5 步:准备Stage

javafx.stage.Stage类提供了一些重要的方法,需要调用这些方法来为Stage设置一些属性。我们可以设置Stage的标题。我们还需要调用 show() 方法,否则将不会显示Stage。让我们看一下描述如何为应用程序准备阶段的代码。

package com.yiidian;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
/**
 * 一点教程网: http://www.yiidian.com
 */
public class Hello_World extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        Button btn1 = new Button("Say, Hello World");
        StackPane root=new StackPane();
        root.getChildren().add(btn1);
        Scene scene=new Scene(root);
        primaryStage.setScene(scene);
        primaryStage.setTitle("第一个JavaFX程序");
        primaryStage.show();
    }
}

第 6 步:为按钮创建一个事件

当我们的应用程序为按钮上的事件打印 hello world 时。我们需要为按钮创建一个事件。为此,在按钮上调用setOnAction()并定义一个匿名类 Event Handler 作为该方法的参数。

在这个匿名类中,定义一个方法 handle(),它包含如何处理事件的代码。在我们的例子中,它在控制台上打印 hello world。

package com.yiidian;

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;
/**
 * 一点教程网: http://www.yiidian.com
 */
public class Hello_World extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        Button btn1 = new Button("Say, Hello World");

        btn1.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent arg0) {
                System.out.println("hello world");
            }
        });

        StackPane root=new StackPane();
        root.getChildren().add(btn1);
        Scene scene=new Scene(root);
        primaryStage.setScene(scene);
        primaryStage.setTitle("第一个JavaFX程序");
        primaryStage.show();
    }
}

第七步:创建main方法

到目前为止,我们已经配置了开发一个基本的 JavaFX 应用程序所需的所有必要的东西,但这个应用程序仍然不完整。我们还没有创建 main 方法。因此,最后,我们需要创建一个 main 方法,我们将在其中启动应用程序,即调用 launch() 方法并将命令行参数 (args) 传递给它。代码现在将如下所示。

package com.yiidian;

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;
/**
 * 一点教程网: http://www.yiidian.com
 */
public class Hello_World extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        Button btn1 = new Button("Say, Hello World");

        btn1.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent arg0) {
                System.out.println("hello world");
            }
        });

        StackPane root=new StackPane();
        root.getChildren().add(btn1);
        Scene scene=new Scene(root);
        primaryStage.setScene(scene);
        primaryStage.setTitle("第一个JavaFX程序");
        primaryStage.show();
    }

    public static void main (String[] args)
    {
        launch(args);
    }
}

应用程序将在屏幕上产生以下输出。

热门文章

优秀文章