在javafx中创建多个文本字段

时间:2016-01-11 01:01:29

标签: javafx

无论如何,我可以做一个for循环来创建多个文本字段。假设我想要20个文本字段...我是否必须单独创建它们?

1 个答案:

答案 0 :(得分:1)

你的问题是什么并不是很清楚。只需编写一个for循环并在其中创建每个TextField

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class TwentyTextFields extends Application {

    @Override
    public void start(Stage primaryStage) {

        final int numTextFields = 20 ;
        TextField[] textFields = new TextField[numTextFields];
        VBox root = new VBox(5);
        for (int i = 1; i <= numTextFields; i++) {
            TextField tf = new TextField();
            String name = "Text field "+i ;
            tf.setOnAction(e -> {
                System.out.println("Action on "+name+": text is "+tf.getText());
            });
            root.getChildren().add(tf);
            textFields[i-1] = tf ;
        }
        Scene scene = new Scene(new ScrollPane(root), 250, 600);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}