2017-04-05 96 views
2

我正在編寫一個程序,允許用戶在需要將更多數據添加到表單的情況下添加新的空文本字段。我無法理解如何爲添加到GridPane的每個新字段設置座標。例如,JavaFX動態添加新文本字段

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

只會導致在位置(5,6)中添加一個新的文本字段。如何更改代碼以允許用戶添加儘可能多的字段,每個字段都顯示在另一個之後。我知道我可以使用循環來確定一定數量的新字段,但用戶應該能夠創建任何數字。預先感謝您的幫助。

彌敦道

+1

存儲最後添加的文本框座標,並在每次點擊時修改它們。 –

回答

3

此代碼可以幫助您。

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); 
}}