文本字段接受并显示文本。在最新版本的JavaFX中,它仅接受一行。在JavaFX中,javafx.scene.control.TextField类表示文本字段,该类继承javafx.scene.control.TextInputControl (所有文本控件的基类)类。使用此功能,您可以接受用户的输入并将其读入您的应用程序。
要创建文本字段,您需要将该类实例化到该类的构造函数。它从其超类TextInputControl继承了一个名为text的属性。此属性保存当前文本字段的内容。您可以使用getText()方法检索此数据。
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class TextFieldGettingData extends Application {
public void start(Stage stage) {
//创建节点
TextField textField1 = new TextField();
TextField textField2 = new TextField();
Button button = new Button("Submit");
button.setTranslateX(250);
button.setTranslateY(75);
//创建标签
Label label1 = new Label("Name: ");
Label label2 = new Label("Email: ");
//设置带有读取数据的消息
Text text = new Text("");
//将字体设置为标签
Font font = Font.font("verdana", FontWeight.BOLD, FontPosture.REGULAR, 10);
text.setFont(font);
text.setTranslateX(15);
text.setTranslateY(125);
text.setFill(Color.BROWN);
text.maxWidth(580);
text.setWrappingWidth(580);
//显示消息
button.setOnAction(e -> {
//检索数据
String name = textField1.getText();
String email = textField2.getText();
text.setText("Hello "+name+"Welcome to Nhooo. From now, we will
communicate with you at "+email);
});
//为节点添加标签
HBox box = new HBox(5);
box.setPadding(new Insets(25, 5 , 5, 50));
box.getChildren().addAll(label1, textField1, label2, textField2);
Group root = new Group(box, button, text);
//设置舞台
Scene scene = new Scene(root, 595, 150, Color.BEIGE);
stage.setTitle("Text Field Example");
stage.setScene(scene);
stage.show();
}
public static void main(String args[]){
launch(args);
}
}输出结果