我正在尝试设置 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/