2016-01-11 3 views
0

В любом случае я могу сделать цикл for для создания нескольких текстовых полей. Скажем, я хочу, чтобы 20 текстовых полей ... мне нужно их создавать индивидуально?Создание нескольких текстовых полей в javafx

+0

Да ... просто напишите цикл 'for' и создайте в нем текстовые поля. Не совсем ясно, в чем вопрос. –

+0

Как это назвать, как tetxfield1 textfield2 и т. Д. –

+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); 
    } 
} 
Смежные вопросы