UI控件 ->TextField

来源:互联网 发布:string.h 51单片机 编辑:程序博客网 时间:2024/06/15 02:01

TextField 类实现了一个接收和显示文本输入的UI组件。它提供了从用户接收文本输入的功能。这个类和另一个文本输入组件PasswordField一样,都继承自TextInput 类。TextInput 类是JavaFX
API
中所有文本组件的超类。

package javafxui;import javafx.scene.control.Button;import javafx.application.Application;import javafx.event.ActionEvent;import javafx.geometry.Insets;import javafx.scene.Scene;import javafx.scene.control.Label;import javafx.scene.control.TextField;import javafx.scene.layout.GridPane;import javafx.scene.layout.HBox;import javafx.scene.layout.Pane;import javafx.scene.layout.StackPane;import javafx.stage.Stage;public class LearnTextField extends Application{@Overridepublic void start(Stage stage) {StackPane stackPane = new StackPane();/*@1 * 创建文本域 * 可以在任何时候通过 getText 方法获取Text Field的值 * setPrefColumnCount()是指同一时间可以显示的最大字符个数。 *  */Label label1 = new Label("Name:");TextField textField = new TextField ();HBox hb = new HBox();hb.getChildren().addAll(label1, textField);hb.setSpacing(10);/*@2 * 添加Text Field到Application * setPromptText()设置提示文本 * 提示文本和输入在Text Field中的文本的区别是提示文本无法通过getText 方法取得。 * GridPane.setConstraints(node, col, row);设置位置 *///创建GridPane容器GridPane grid = new GridPane();grid.setPadding(new Insets(10, 10, 10, 10));grid.setVgap(5);grid.setHgap(5);//定义Name Text Fieldfinal TextField name = new TextField();name.setPromptText("Enter your first name.");GridPane.setConstraints(name, 0, 0);grid.getChildren().add(name);//定义Last Name Text Fieldfinal TextField lastName = new TextField();lastName.setPromptText("Enter your last name.");GridPane.setConstraints(lastName, 0, 1);grid.getChildren().add(lastName);//定义Comment Text Fieldfinal TextField comment = new TextField();comment.setPromptText("Enter your comment.");GridPane.setConstraints(comment, 0, 2);grid.getChildren().add(comment);//定义Submit ButtonButton submit = new Button("Submit");//&1 GridPane.setConstraints(submit, 1, 0);grid.add(submit, 1, 0);//可代替 &1,&2//&2 grid.getChildren().add(submit);//定义Clear ButtonButton clear = new Button("Clear");GridPane.setConstraints(clear, 1, 1);grid.getChildren().add(clear);/*@3 * 处理Text Field数据(行为) *  * 清除信息 * name.clear() *   lastName.clear() *  comment.clear() * label.setText(null) */final Label label = new Label();GridPane.setConstraints(label, 0, 3);GridPane.setColumnSpan(label, 2);grid.getChildren().add(label);submit.setOnAction((ActionEvent e) -> {    if (        (comment.getText() != null && !comment.getText().isEmpty())    ) {    label.setText(name.getText() + " " +        lastName.getText() + ", "        + "thank you for your comment!");    } else {        label.setText("You have not left a comment.");    }});clear.setOnAction((ActionEvent e) -> {    name.clear();    lastName.clear();    comment.clear();    label.setText(null);});/*@4 *一些用于TextField的方法 *      · copy()– 将当前选中范围内的文本复制到剪切板,并保留选中的内容      *· cut()– 将当前选中范围内的文本复制到剪切板,并移除选中的内容    *· selectAll() – 选中Text Field中所有输入的文本 *· paste()– 将剪切板中的内容粘贴到这个Text Field中,并替换当前选中的内容 *  */Scene scene = new Scene(grid,300,300);stage.setScene(scene);stage.show();}public static void main(String[] args) {Application.launch(args);}}

原创粉丝点击