현재 여러 사건에 대한 보고서를 작성하는 도구를 만들고 있습니다.JavaFX - 다른 콤보 상자에서 선택된 항목 제거
첫 번째 단계에서는 사용자가 통화에 참여한 모든 사람을 선택합니다 (우리에게는 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);
}
});
첫 번째 콤보 박스의 경우 이전에 제거 된 항목은 분명히 다른 모든 콤보 박스에서 사라집니다. 또한 사용자가 첫 번째 콤보 상자의 모든 사람을 차례로 선택하면 다른 콤보 상자가 잠시 후에 비어있게됩니다.
그래서 어떻게 든 현재 선택된 항목을 잃지 않거나 목록에 다시 선택한 항목을 다시 추가하지 않고 모든 콤보 상자의 선택한 항목을 기반으로 상자를 다시 채워야합니다.
도움을 주시면 감사하겠습니다. 미리 감사드립니다.