【发布时间】:2018-05-24 20:40:47
【问题描述】:
我目前正在创建一个工具来归档不同事件的报告。
在第一步中,用户选择参与通话的每个人(我们有 26 人的工作人员)。在下一步中,将每个选定的人写入 6 个不同的组合框,以便用户可以选择每辆车的驾驶员和指挥官(3 辆车 - 每辆车上的指挥官和驾驶员,因此有 6 个组合框)。
我的问题是:我需要防止同一个人被选为每辆车辆的司机或同时作为司机和指挥官。所以我尝试通过 ChangeListener 从所有其他组合框中删除选定的人:
(每个组合框一个 ChangeListener,这里是一个示例)
inputDriverTruck42.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
@Override
public void changed(ObservableValue ov, Object t, Object t1) {
String toRemove = inputDriverTruck42.getSelectionModel().getSelectedItem();
inputDriverCar19.getItems().remove(toRemove);
inputDriverTruck33.getItems().remove(toRemove);
inputCommanderCar19.getItems().remove(toRemove);
inputCommanderTruck42.getItems().remove(toRemove);
inputCommanderTruck33.getItems().remove(toRemove);
}
});
到目前为止效果很好,但是当用户更改他对第一个组合框的选择时,先前删除的项目显然在所有其他组合框中都消失了。此外,如果用户一个接一个地选择第一个组合框中的每个人,那么其他每个组合框都会在一段时间后为空。
所以我需要根据每个组合框的选定项目重新填充框,而不会丢失当前选定的项目或将选定的项目重新添加回列表中。
感谢任何帮助!提前致谢。
【问题讨论】: