java - 从 Control 数组按类型获取 UI 元素?

标签 java arrays for-loop if-statement javafx

有没有办法遍历 Control 数组并只获取一种类型的 UI 元素,例如 TextField?这是一个包含 TextFieldDatePickerChoiceBoxes 的数组:

Control[] allControls = new Control[] {
     name, surname, age, address, city,
     telephoneNum, email, deptBox, idNum, startDate,
     contractType, endDate, payFreq, accountNum, taxCoeficient,
     netSalary 
};

有没有办法将if条件放入for循环中,只获取一种类型的UI元素?

最佳答案

您可以申请 Stream API使用 instanceof 过滤所需类的所有实例,最后将它们收集到一个新列表中:

List<TextField> textFieldList = Arrays.asList(allControls).stream()
    .filter(c -> c instanceof TextField)
    .map (c -> (TextField) c)
    .collect(Collectors.toList());

关于java - 从 Control 数组按类型获取 UI 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45661097/

相关文章:

python - 将元素 append 到 numpy 数组中每个箭头的末尾

C 程序在循环中调用包含字符串的数组

python - 我希望确保列表中的项目不具有输入单词中不存在的重复元素

javascript - 计算 2 个数组中的每个值,如果每个数组的长度不相同,则推送长度较长的值

java - 在没有泛型的情况下从 TypeElement 获取父类(super class)?

c++ - 在尝试将没有空格的文本文件读取到 C++ 中的二维数组时需要帮助

java - 用于向 ROCKWELL PLC (1756-A10/A) 读取和写入数据的简单 APP

c++ - 为什么我不能创建大小为 n 的数组?

java - spring 集成 TCP 服务器中的交互

java - 用于指定调用哪个函数的字符串输入 [Java] [最佳实践]