JavaFX UI组件

JavaFX是一种用于构建富客户端应用程序的Java框架。它提供了一组丰富的UI组件,可以用于创建各种类型的用户界面。本文将介绍一些常用的JavaFX UI组件,以及它们的用法和示例代码。

1. Label组件

Label组件用于显示文本或图标。它可以用于在界面上显示静态文本或动态文本,也可以用于显示图标。

示例代码:

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

public class LabelExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        Label label = new Label("Hello, JavaFX!");
        StackPane root = new StackPane();
        root.getChildren().add(label);
        Scene scene = new Scene(root, 300, 200);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

运行上述代码,将在窗口中显示一个带有文本"Hello, JavaFX!"的Label。

2. Button组件

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(event -> System.out.println("Button clicked!"));
        StackPane root = new StackPane();
        root.getChildren().add(button);
        Scene scene = new Scene(root, 300, 200);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

上述代码创建了一个按钮,当用户点击按钮时,控制台将输出"Button clicked!"。

3. TextField组件

TextField组件用于接收用户输入的文本。可以通过getText()方法获取用户输入的文本内容。

示例代码:

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

public class TextFieldExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        TextField textField = new TextField();
        Button button = new Button("Submit");
        button.setOnAction(event -> {
            String text = textField.getText();
            System.out.println("User input: " + text);
        });
        VBox root = new VBox();
        root.getChildren().addAll(textField, button);
        Scene scene = new Scene(root, 300, 200);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

上述代码创建了一个文本输入框和一个提交按钮。当用户输入文本并点击提交按钮时,程序将在控制台上打印用户输入的文本内容。

4. CheckBox组件

CheckBox组件用于提供一个复选框。可以通过isSelected()方法获取复选框的选中状态。

示例代码:

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

public class CheckBoxExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        CheckBox checkBox = new CheckBox("Enable Feature");
        Label label = new Label();
        checkBox.setOnAction(event -> {
            boolean selected = checkBox.isSelected();
            label.setText("Feature is " + (selected ? "enabled" : "disabled"));
        });
        VBox root = new VBox();
        root.getChildren().addAll(checkBox, label);
        Scene scene = new Scene(root, 300, 200);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

上述代码创建了一个复选框和一个标签。当用户点击复选框时,程序将根据复选框的选中状态在标签上显示相应的文本。

5. ComboBox组件

ComboBox组件用于提供一个下拉列表,用户可以从中选择一个选项。

示例代码:

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class ComboBoxExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        ComboBox<String> comboBox = new ComboBox<>(FXCollections.observableArrayList("