Java:如何将动态数量的参数传递给方法



我正在编写一个 JavaFX 应用程序,我需要使用其 addRow 方法将 nTextField对象添加到GridPane中的行中。 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对象包含在row_index GridPane行中。

如果这甚至可能,我该怎么做?

GridPane.addRow(...) 方法采用int(行索引(和 Node s 的变量。你可以为 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 转换为数组,然后将其传递给该方法?

TextField[] arr = new TextField[tf.size()];
arr = tf.toArray(arr);

相关内容

  • 没有找到相关文章

最新更新