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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。