TextField类是JavaFX软件包的一部分。它是允许用户输入未格式化文本行的组件,不允许multi-line输入,仅允许用户输入一行文本。然后可以根据需要使用文本。
TextField类的构造方法:
- TextField():创建一个带有空文本内容的新TextField
- TextField(String s):创建一个带有初始text的新TextField。
常用方法:
方法 | 说明 |
---|---|
setPrefColumnCount(int v) | 设置属性prefColumnCount的值。 |
setOnAction(EventHandler value) | 设置属性onAction的值。 |
setAlignment(Pos v) | 设置属性对齐方式的值。 |
prefColumnCountProperty() | 首选文本列数 |
onActionProperty() | 与此文本字段关联的操作处理程序;如果未分配任何操作处理程序,则为null。 |
getPrefColumnCount() | 获取属性prefColumnCount的值。 |
getOnAction() | 获取属性onAction的值。 |
getAlignment() | 获取属性对齐方式的值。 |
getCharacters() | 返回支持文本字段内容的字符序列。 |
以下示例程序旨在说明文本字段的用法:
- Java程序创建一个TextField并将其添加到舞台上:该程序创建一个以b表示的TextField。 TextField将在场景内创建,而场景又将在场景(这是顶级JavaFX容器)中托管。函数setTitle()用于为舞台提供标题。然后,创建一个Title-pane,在其上调用addChildren()方法以将TextField附加到场景内,以及代码中的(200,200)指定的分辨率。最后,调用show()方法以显示最终结果。
// Java program to create a textfield and add it to stage import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class Textfield extends Application { // launch the application public void start(Stage s) { // set title for the stage s.setTitle("creating TextField"); // create a textfield TextField b = new TextField(); // create a stack pane StackPane r = new StackPane(); // add textfield r.getChildren().add(b); // create a scene Scene sc = new Scene(r, 200, 200); // set the scene s.setScene(sc); s.show(); } public static void main(String args[]) { // launch the application launch(args); } }
输出:
- Java程序创建带有初始文本的TextField并添加事件处理程序:该程序创建一个以b表示的TextField。我们将创建一个标签,该标签将在按下Enter键时显示文本。我们将创建一个事件处理程序,该事件处理程序将处理Text字段的事件,并将使用setOnAction()方法将该事件处理程序添加到Textfield中。 TextField将在场景内创建,而场景又将在场景(这是顶级JavaFX容器)中托管。函数setTitle()用于为舞台提供标题。然后,创建一个Title-pane,在其上调用addChildren()方法以将TextField和标签附加到场景内,以及代码中的(200,200)指定的分辨率。最后,调用show()方法以显示最终结果。
// Java program to create a textfield and add a // event handler to handle the event of textfield import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.*; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.control.Label; import javafx.stage.Stage; public class Textfield_1 extends Application { // launch the application public void start(Stage s) { // set title for the stage s.setTitle("creating textfield"); // create a textfield TextField b = new TextField("initial text"); // create a tile pane TilePane r = new TilePane(); // create a label Label l = new Label("no text"); // action event EventHandler<ActionEvent> event = new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { l.setText(b.getText()); } }; // when enter is pressed b.setOnAction(event); // add textfield r.getChildren().add(b); r.getChildren().add(l); // create a scene Scene sc = new Scene(r, 200, 200); // set the scene s.setScene(sc); s.show(); } public static void main(String args[]) { // launch the application launch(args); } }
输出:
- Java程序创建带有初始文本的文本字段并添加事件处理程序:该程序创建一个以b表示的TextField。我们将通过使用字符串调用其构造函数来设置初始文本,并使用setPrefColumnCount()方法设置首选的列数。我们将创建一个标签,当按下Enter键时将显示文本。我们将创建一个事件处理程序,该事件处理程序将处理Text字段的事件,并将使用setOnAction()方法将该事件处理程序添加到Textfield中。 TextField将在场景内创建,而场景又将在场景(这是顶级JavaFX容器)中托管。函数setTitle()用于为舞台提供标题。然后,创建一个Title-pane,在其上调用addChildren()方法以将TextField和标签附加到场景内,并在代码中指定(200,200)所指定的分辨率。最后,调用show()方法以显示最终结果。
// Java program to create a textfield with a initial text // and preferred column count and add a event handler to // handle the event of textfield import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.*; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.control.Label; import javafx.stage.Stage; public class TextField_2 extends Application { // launch the application public void start(Stage s) { // set title for the stage s.setTitle("creating textfield"); // create a textfield TextField b = new TextField("initial text"); // set preffered column count b.setPrefColumnCount(7); // create a tile pane TilePane r = new TilePane(); // create a label Label l = new Label("no text"); // action event EventHandler<ActionEvent> event = new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { l.setText(b.getText()); } }; // when enter is pressed b.setOnAction(event); // add textfield r.getChildren().add(b); r.getChildren().add(l); // create a scene Scene sc = new Scene(r, 200, 200); // set the scene s.setScene(sc); s.show(); } public static void main(String args[]) { // launch the application launch(args); } }
输出:
- Java程序创建带有初始文本和文本居中对齐的TextField并添加事件处理程序:此程序创建一个以b表示的TextField。我们将通过调用其构造函数使用字符串来设置初始文本,并使用setAlignment()方法设置对齐方式。我们将创建一个标签,当按下Enter键时将显示文本.we将创建一个事件处理程序,该事件处理程序将处理Text字段的事件,并将使用setOnAction()方法将该事件处理程序添加到Textfield中。 TextField将在场景内创建,而场景又将在场景(这是顶级JavaFX容器)中托管。函数setTitle()用于为舞台提供标题。然后,创建一个Title-pane,在其上调用addChildren()方法以将TextField和标签附加到场景内,并在代码中指定(200,200)所指定的分辨率。最后,调用show()方法以显示最终结果。
// Java program to create a textfield with a initial text and center alignment of text // and add a event handler to handle the event of textfield import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.*; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.control.Label; import javafx.stage.Stage; import javafx.geometry.*; public class TextField_4 extends Application { // launch the application public void start(Stage s) { // set title for the stage s.setTitle("creating textfield"); // create a textfield TextField b = new TextField("initial text"); // set alignment of text b.setAlignment(Pos.CENTER); // create a tile pane TilePane r = new TilePane(); // create a label Label l = new Label("no text"); // action event EventHandler<ActionEvent> event = new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { l.setText(b.getText()); } }; // when enter is pressed b.setOnAction(event); // add textfield r.getChildren().add(b); r.getChildren().add(l); // create a scene Scene sc = new Scene(r, 200, 200); // set the scene s.setScene(sc); s.show(); } public static void main(String args[]) { // launch the application launch(args); } }
输出:
注意:以上程序可能无法在在线IDE中运行,请使用离线编译器。
参考:https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TextField.html
相关用法
- JavaFX 类 CustomMenuItem用法及代码示例
- JavaFX 类 ChoiceBox用法及代码示例
- JavaFX 类 ChoiceDialog用法及代码示例
- JavaFX 类 Arc用法及代码示例
- JavaFX 类 Pos用法及代码示例
- JavaFX 类 Box用法及代码示例
- JavaFX 类 Tab用法及代码示例
- JavaFX 类 TextInputDialog用法及代码示例
- JavaFX 类 MenuButton用法及代码示例
- JavaFX 类 ProgressIndicator用法及代码示例
- JavaFX 类 ProgressBar用法及代码示例
- JavaFX 类 PasswordField用法及代码示例
注:本文由纯净天空筛选整理自andrew1234大神的英文原创作品 JavaFX | TextField。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。