當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JavaFX 類 TextInputDialog用法及代碼示例


TextInputDialog是JavaFX庫的一部分。 TextInputDialog是一個對話框,允許用戶輸入文本,並且該對話框包含標題文本,TextField和確認按鈕。

TextInputDialog類的構造方法是:

  1. TextInputDialog():創建一個沒有初始文本的文本輸入對話框。
  2. TextInputDialog(String txt):創建一個帶有初始文本txt的文本輸入對話框。

常用方法:


方法 說明
getDefaultValue() 返回文本輸入對話框的默認值
getEditor() 返回文本輸入對話框的編輯器
setHeaderText(String s) 設置文本輸入對話框標題的標題文本

以下示例程序旨在說明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<ActionEvent> event = new EventHandler<ActionEvent>() { 
                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<ActionEvent> event = new EventHandler<ActionEvent>() { 
                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); 
        } 
    }

    輸出:

  3. 注意:以上程序可能無法在在線IDE中運行,請使用離線IDE。

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



相關用法


注:本文由純淨天空篩選整理自andrew1234大神的英文原創作品 JavaFX | TextInputDialog。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。