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

标签 java javafx methods variadic-functions

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

如果这可能的话,我该怎么做?

最佳答案

GridPane.addRow(...) method接受一个 int (行索引)和一个 Node 的可变参数。您可以为 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);

关于Java:如何将动态数量的参数传递给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44123090/

相关文章:

java - 无法使扫描字符串方法工作

java - 当我们使用Thread的join方法时,前一个线程如何再次启动

java - Swingworker.done() 在完成后卡住 GUI 几秒钟

java - Apache 吊索 s3 桶

JavaFX 同时多个 Controller

javafx - 取消对某个TableView cell的修改

java - 需要帮助理解三步动态编程/递归问题

JavaFX 11 : IllegalAccessError when creating Label

linux - 开发一个程序来分析 Linux 磁盘的目录结构并识别任何大于 500kbytes 的文件

javascript - 没有大括号的 ES6 getter/方法