簡體   English   中英

從javafx中的多文本字段檢索數據

[英]retrieve data from multi text field in javafx

我正在開發一個應用程序,在該應用程序中,用戶應確定在用戶確定文本字段數之后,應從在javaFX控制器中動態創建的文本字段中檢索數據。 因為在第一個視圖中我只有一個文本字段,所以我確實很容易地檢索了它,沒有問題,但是當從控制器動態創建文本字段時,我只是不知道如何進行操作。

我試圖使用textfield.getText(); 但它不起作用。

這是我的代碼:

public void handleButtonActionNext(ActionEvent event) throws IOException{

        String t = textField.getText();
        IntegerStringConverter a = new IntegerStringConverter();
        this.i = a.fromString(t);

        Node node = (Node) event.getSource();
        Stage stage = (Stage) node.getScene().getWindow();
        Scene scene = stage.getScene();
        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("ProcessusTimeExec.fxml"));
        Parent root = (Parent) fxmlLoader.load();
        scene.setRoot(root); 

        gridPane = (GridPane) FXMLLoader.load(getClass().getResource("ProcessusTimeExec.fxml"));
        Scene secondScene = new Scene(gridPane);
        gridPane.setPadding(new Insets(10, 10, 10, 10));

        this.listTextField = new ArrayList<>();

        for(int n=1; n<=i;n++){
                this.label = new Label("execution Time "+n);

                GridPane.setConstraints(label, 0, n+2);
                GridPane.setConstraints(textField, 1, n+2);
                gridPane.getChildren().add(textField);
                gridPane.getChildren().add(label);
            }

            stage.setScene(secondScene);
    }

在此Handlevent中,在同一控制器中,我試圖檢索數據以便將其發送到項目的邏輯部分。

public void handleButtonActionAlgo(ActionEvent event) throws IOException{

        Node node = (Node) event.getSource();
        Stage stage = (Stage) node.getScene().getWindow();
        Scene scene = stage.getScene();
        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("Algo.fxml"));

        Parent root = (Parent) fxmlLoader.load();
        scene.setRoot(root);

        // retrieve the data from the textFields      
    }

執行這些操作的按鈕在FXML文件中。

就像是 :

       TextField textField[] = new TextField[...]; 

      for(int n=1; n<=i;n++) {
            textField[n] = new TextField("input "+n);
            gridPane.getChildren().add(textField[n]);
        }

您可以使用.getText()打印它們進行測試

    for(int n=1; n<=i;n++) {System.out.println(textField[n].getText());}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM