[英]Java: How to pass a dynamic amount of arguments to a method
我寫一個JavaFX應用程序,我需要的施氮量添加TextField
在對象的行GridPane
使用其addRow
方法。 addRow
可以接受任意數量的參數,但是接收到的TextField
對象的數量不是硬編碼的。 例如,
GridPane gp = new GridPane();
ArrayList<TextField> tf = new ArrayList<>();
for (int i = 0; i < user_entered_number; i++) {
tf.add(new TextField());
}
gp.addRow(row_index, /* all elements in tf*/);
我希望使用allRow
方法將所有生成的TextField
對象包括在GridPane
行的row_index
allRow
。
如果有可能,我該怎么辦?
GridPane.addRow(...)
方法采用int
(行索引)和Node
的GridPane.addRow(...)
。 您可以為varargs參數傳遞數組,因此您可以
gp.addRow(row_index, tf.toArray(new Node[0]));
或者,只需首先創建一個數組而不是一個列表:
GridPane gp = new GridPane();
TextField[] tf = new TextField[userEnteredNumber];
for (int i = 0; i < userEnteredNumber; i++) {
tf[i] = new TextField();
}
gp.addRow(row_index, tf);
我不確定我是否正確理解您的問題。 是否要將tf ArrayList中的所有元素添加為addRow()方法中的參數?
addRow()mathod使用varargs作為參數。 您是否嘗試將ArrayList轉換為array,然后將其傳遞給方法?
TextField[] arr = new TextField[tf.size()];
arr = tf.toArray(arr);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.