java - 当循环的类型为 "javafx.scene.control.Tab"时,如何跳过增强型 for 循环中的第一个索引?

标签 java javafx foreach

我正在尝试设置 TabId,每个选项卡都从名为 entityList 的列表中获取其 ID 和文本。问题是选项卡的数量取决于此 entityList 的大小 + 一个附加的第一个选项卡(用户输入 entityList 的位置),我一切正常,除了第一个选项卡应始终命名为“概述”。

我知道如何设置它,但我不知道如何跳过增强型 for 循环中的第一个选项卡(以便它从第二个选项卡开始设置 ID,该选项卡将包含 entityList 的第一个字符串)。以下是我的方法:

@FXML
public void currentTabIndex() {
    ObservableList<Tab> tabID = mainTabPane.getTabs();
    int i=0;
    //tabID.get(0).setId("Overview"); --> can't figure out where this should be placed
    //tabID.get(0).setText("Overview"); --> and this too

    for (Tab loop:tabID) {
        for(;i<tabID.size()-1;) {
            loop.setId(entityList.get(i).getEntitytName());
            loop.setText(entityList.get(i).getEntitytName());
            i++;
            break;
        }
    }   
}

最佳答案

有了增强的 for 循环,就不可能跳过第一次迭代。可以通过引入检查来解决这个问题,但我推荐其他方法:

您可以使用迭代器使用传统的 for 循环

for (Iterator<Tab> iterator = tabID.listIterator(1); iterator.hasNext();) {
    Tab loop = iterator.next();

    ...
}

或遍历子列表:

for (Tab loop : tabID.subList(1, tabID.size())) {
    ...
}

关于java - 当循环的类型为 "javafx.scene.control.Tab"时,如何跳过增强型 for 循环中的第一个索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49579573/

相关文章:

java - 从 JavaFX 插入 MySQL

java - Fxml 文件未在 Eclipse 中更新

java - 检测流是否用 Java 压缩的最佳方法

java - 如何使 "Enter"键的行为类似于在 JFrame 上提交

java - 将 RGB 转换为位图中的 X 和 Y

java - 从 github 构建 CalendarFX

php - 如何在php中映射一个数组

php - 为 CodeIgniter 中的 foreach 提供的参数无效

c# - 字符串列表删除

java - 我应该在 Java 中使用 Qt Jambi 吗?