📜  JavaFX |文本输入对话框

📅  最后修改于: 2022-05-13 01:55:28.826000             🧑  作者: Mango

JavaFX |文本输入对话框

TextInputDialog 是 JavaFX 库的一部分。 TextInputDialog 是一个允许用户输入文本的对话框,该对话框包含标题文本、TextField 和确认按钮。

TextInputDialog 类的构造函数是:

  1. TextInputDialog() :创建一个没有初始文本的文本输入对话框。
  2. TextInputDialog(String txt) : 创建一个带有初始文本txt的文本输入对话框。

常用方法:

methodexplanation
getDefaultValue()returns the default value of the text input dialog
getEditor()returns the editor of the text input dialog
setHeaderText(String s)sets the header text of the header of text input dialog

下面的程序说明了 TextInputDialog 类:

  1. 创建 TextInputDialog 并将其添加到舞台的程序:该程序创建一个带有初始文本和标题文本的 TextInputDialog。标题文本使用 setHeaderText()函数设置。按钮由名称d表示,文本输入对话框将具有名称td 。该按钮将在场景内创建,而场景又将托管在舞台内。函数setTitle() 用于为舞台提供标题。然后创建一个平铺窗格,调用 addChildren() 方法将按钮附加到场景中。最后调用 show() 方法显示最终结果。 TextInputDialog 将在单击按钮时显示。
    // Java Program to create a text input
    // dialog and add it to the stage
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.layout.*;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.control.*;
    import javafx.stage.Stage;
    import javafx.scene.control.Alert.AlertType;
    import java.time.LocalDate;
    public class TextInputDialog_1 extends Application {
      
        // launch the application
        public void start(Stage s)
        {
            // set title for the stage
            s.setTitle("creating textInput dialog");
      
            // create a tile pane
            TilePane r = new TilePane();
      
            // create a text input dialog
            TextInputDialog td = new TextInputDialog("enter any text");
      
            // setHeaderText
            td.setHeaderText("enter your name");
      
            // create a button
            Button d = new Button("click");
      
            // create a event handler
            EventHandler event = new EventHandler() {
                public void handle(ActionEvent e)
                {
                    // show the text input dialog
                    td.show();
                }
            };
      
            // set on action of event
            d.setOnAction(event);
      
            // add button and label
            r.getChildren().add(d);
      
            // create a scene
            Scene sc = new Scene(r, 500, 300);
      
            // set the scene
            s.setScene(sc);
      
            s.show();
        }
      
        public static void main(String args[])
        {
            // launch the application
            launch(args);
        }
    }
    

    输出:

  2. 程序创建一个 TextInputDialog 并添加一个标签以显示输入的文本:该程序创建一个 TextInputDialog ( td )。由名称d和 TextInputDialog 指示的按钮将具有名称td 。该按钮将在场景内创建,而场景又将托管在舞台内。函数setTitle() 用于为舞台提供标题。然后创建一个平铺窗格,调用 addChildren() 方法将按钮附加到场景中。最后,调用 show() 方法显示最终结果。单击按钮时,将显示文本输入对话框。将创建一个名为 l 的标签,该标签将添加到场景中,该场景将显示用户在对话框中输入的文本。
    // Java Program to create a text input dialog
    // and add a label to display the text entered
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.layout.*;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.control.*;
    import javafx.stage.Stage;
    import javafx.scene.control.Alert.AlertType;
    import java.time.LocalDate;
    public class TextInputDialog_2 extends Application {
      
        // launch the application
        public void start(Stage s)
        {
            // set title for the stage
            s.setTitle("creating textInput dialog");
      
            // create a tile pane
            TilePane r = new TilePane();
      
            // create a label to show the input in text dialog
            Label l = new Label("no text input");
      
            // create a text input dialog
            TextInputDialog td = new TextInputDialog();
      
            // create a button
            Button d = new Button("click");
      
            // create a event handler
            EventHandler event = new EventHandler() {
                public void handle(ActionEvent e)
                {
                    // show the text input dialog
                    td.showAndWait();
      
                    // set the text of the label
                    l.setText(td.getEditor().getText());
                }
            };
      
            // set on action of event
            d.setOnAction(event);
      
            // add button and label
            r.getChildren().add(d);
            r.getChildren().add(l);
      
            // create a scene
            Scene sc = new Scene(r, 500, 300);
      
            // set the scene
            s.setScene(sc);
      
            s.show();
        }
      
        public static void main(String args[])
        {
            // launch the application
            launch(args);
        }
    }
    

    输出:

    注意:以上程序可能无法在在线 IDE 中运行,请使用离线 IDE。

    参考: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TextInputDialog.html