JavaFX API 简介

简介

JavaFX是用于构建富客户端应用程序的Java库,提供了丰富的图形化用户界面(GUI)组件,可以用于开发桌面应用程序、移动应用程序和嵌入式应用程序。JavaFX API允许开发者创建具有各种交互功能的应用程序,包括动画、多媒体、图形绘制和用户输入处理。

本文将介绍JavaFX API的一些常用组件和功能,并通过代码示例演示其用法。

安装JavaFX

在开始使用JavaFX之前,我们需要确保Java和JavaFX已正确安装在我们的计算机上。

JavaFX已从Java 11开始成为Java标准库的一部分,因此Java 11或更高版本的用户无需额外安装JavaFX。

对于Java 8到10的用户,可以从Oracle官方网站上下载JavaFX SDK并进行安装。

JavaFX应用程序结构

JavaFX应用程序通常由一个主类和一个主窗口组成。主类继承自javafx.application.Application类,并重写start()方法。start()方法是JavaFX应用程序的入口点,应用程序在此方法中初始化和显示主窗口。

以下是一个最简单的JavaFX应用程序示例:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;

public class HelloWorld extends Application {

    @Override
    public void start(Stage primaryStage) {
        Label label = new Label("Hello, World!");
        Scene scene = new Scene(label, 200, 100);
        primaryStage.setScene(scene);
        primaryStage.setTitle("HelloWorld");
        primaryStage.show();
    }

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

在上面的示例中,我们创建了一个继承自Application类的HelloWorld类,并重写了start()方法。在start()方法中,我们创建了一个Label组件,并将其添加到一个新的场景中。然后,我们将该场景设置为主舞台的场景,并设置主舞台的标题。最后,我们通过调用show()方法显示主舞台。

JavaFX组件

JavaFX提供了许多用于构建用户界面的组件,如按钮、标签、文本框、列表、表格等。下面是一些常用的JavaFX组件及其用法示例:

Button - 按钮

按钮是一种常用的交互组件,用户可以单击按钮来执行特定的操作。以下是创建和处理按钮单击事件的示例:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class ButtonExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        Button button = new Button("Click me");
        button.setOnAction(e -> System.out.println("Button clicked"));

        StackPane root = new StackPane();
        root.getChildren().add(button);

        Scene scene = new Scene(root, 200, 100);
        primaryStage.setScene(scene);
        primaryStage.setTitle("ButtonExample");
        primaryStage.show();
    }

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

在上面的示例中,我们创建了一个按钮,并使用setOnAction()方法设置按钮的单击事件处理程序。在单击事件处理程序中,我们将一条消息打印到控制台。

TextField - 文本框

文本框允许用户输入文本信息。以下是一个简单的文本框示例:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class TextFieldExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        TextField textField = new TextField();

        StackPane root = new StackPane();
        root.getChildren().add(textField);

        Scene scene = new Scene(root, 200, 100);
        primaryStage.setScene(scene);
        primaryStage.setTitle("TextFieldExample");
        primaryStage.show();
    }

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

在上面的示例中,我们创建了一个文本框,并将其添加到场景中。

TableView - 表格视图

表格视图用于显示和编辑表格数据。以下是一个简单的表格视图示例:

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene