2017-04-05 2 views
2

Ich schreibe ein Programm, mit dem ein Benutzer neue, leere Textfelder hinzufügen kann, wenn mehr Daten zum Formular hinzugefügt werden müssen. Ich habe Probleme zu verstehen, wie die Koordinaten für jedes neue Feld festgelegt werden, das meinem GridPane hinzugefügt wird. Beispiel:JavaFX dynamisch neue Textfelder hinzufügen

  btnClick.setOnAction(new EventHandler<ActionEvent>(){ 
    public void handle(ActionEvent e) 
{ 
    TextField text = new TextField(); 
    primaryPane.add(text, 5 , 6); 
}}); 

wird nur ein neues Textfeld in Position (5,6) hinzugefügt. Wie kann der Code geändert werden, damit ein Benutzer beliebig viele Felder hinzufügen kann, wobei jedes nach dem anderen angezeigt wird? Ich weiß, dass ich eine Schleife für eine bestimmte Anzahl neuer Felder verwenden könnte, aber der Benutzer sollte in der Lage sein, eine beliebige Zahl zu erstellen. Vielen Dank im Voraus für jede Hilfe.

Nathan

+1

Shop zuletzt hinzugefügten Textfeld koordiniert und auf jedem Klick ändern. –

Antwort

3

Dieser Code hilft Ihnen.

public class AddTextField extends Application { 
int i = 1; 

@Override 
public void start(Stage primaryStage) { 
    GridPane root = new GridPane(); 
    root.setHgap(10); 
    root.setVgap(10); 
    TextField textField[] = new TextField[15]; 
    Button btn = new Button("Add TextField"); 
    root.add(btn, 0, 0); 
    btn.setOnAction(e -> { 
     textField[i] = new TextField(); 
     root.add(textField[i], 5, i); 
     i = i + 1; 

    }); 

    final Scene scene = new Scene(root, 500, 400); 
    primaryStage.setScene(scene); 
    primaryStage.show(); 

} 

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