优秀的编程知识分享平台

网站首页 > 技术文章 正文

JavaFX学习笔记018(TextArea 文本域)

nanyue 2024-10-13 03:56:05 技术文章 8 ℃

引言

JavaFX 中的 TextArea 控件是用于显示和编辑多行文本的强大工具。它提供了丰富的功能,使得文本输入和显示变得简单而灵活。本文将介绍如何在 JavaFX 中使用 TextArea 控件,包括创建、设置属性以及处理用户输入等方面。

创建 TextArea 控件

在创建 JavaFX 应用程序时,首先需要导入相关的包:

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

然后,在 start 方法中创建 TextArea 控件并添加到场景中:

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) {
        // 创建 TextArea 控件
        TextArea textArea = new TextArea();

        // 创建场景并将 TextArea 添加到场景中
        Scene scene = new Scene(textArea, 400, 300);

        // 设置舞台标题和场景
        primaryStage.setTitle("JavaFX TextArea 示例");
        primaryStage.setScene(scene);

        // 显示舞台
        primaryStage.show();
    }

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

设置 TextArea 的属性

TextArea 提供了多种属性可供设置,例如文本内容、最大行数、滚动条等。以下是一些常用的属性设置示例:

// 设置 TextArea 的文本内容
textArea.setText("这是TextArea的示例文本。");

// 设置 TextArea 的最大行数
textArea.setMaxLines(10);

// 允许文本换行
textArea.setWrapText(true);

// 显示垂直滚动条
textArea.setWrapText(true);

// 显示水平滚动条
textArea.setWrapText(true);

处理用户输入

通过添加事件处理器,可以轻松地处理用户在 TextArea 中的输入。以下是一个简单的示例,显示用户在 TextArea 中输入的文本:

textArea.setOnKeyTyped(event -> {
    System.out.println("用户输入: " + event.getCharacter());
});

这只是一个简单的例子,你可以根据需要添加更多复杂的事件处理逻辑。

其他注意事项

  • 要获取 TextArea 中的文本内容,可以使用 getText() 方法。
  • 若要禁用 TextArea 的编辑功能,可以使用 setEditable(false) 方法。

通过以上步骤,你可以开始在 JavaFX 中使用 TextArea 控件,并根据实际需求进行定制和扩展。希望这篇文章对你在使用 JavaFX TextArea 方面有所帮助。

样例代码

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TextArea;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class TextAreaDemo extends Application {

    @Override
    public void start(Stage primaryStage) {
        // 创建 TextArea 控件
        TextArea textArea = new TextArea();
        textArea.setPromptText("在这里输入文本...");

        // 创建一个用于显示结果的 Label
        Label resultLabel = new Label("结果:");

        // 创建按钮,用于获取 TextArea 中的文本内容
        Button showTextButton = new Button("显示文本内容");
        showTextButton.setOnAction(event -> {
            String textContent = textArea.getText();
            resultLabel.setText("结果:" + textContent);
        });

        // 创建滚动条并将 TextArea 放入滚动面板
        ScrollPane scrollPane = new ScrollPane(textArea);
        scrollPane.setFitToHeight(true);
        scrollPane.setFitToWidth(true);

        // 创建一个垂直布局,并将控件添加到其中
        VBox vbox = new VBox(10);
        vbox.getChildren().addAll(scrollPane, showTextButton, resultLabel);

        // 创建场景并将 VBox 添加到场景中
        Scene scene = new Scene(vbox, 400, 300);

        // 设置舞台标题和场景
        primaryStage.setTitle("JavaFX TextArea Demo");
        primaryStage.setScene(scene);

        // 显示舞台
        primaryStage.show();
    }

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


最近发表
标签列表