Ben iki ListView
s var, allStudentsList
içinde zaten öğe bulundu, currentStudentList
hiçbiri vardır. Kullanıcı allStudentList
'da bir öğeyi seçtiğinde amacım, bu öğe için currentStudentList
'a taşınmasıdır. Bunu, allStudentList
seçim modeline bir dinleyici yerleştirerek yaptım.Değişim dinleyicisi ile iki ListViews arasında öğe nasıl taşınır? JavaFX
Bir IndexOutOfBoundsException
alıyorum ve bunun neden olduğundan emin değilim. Testten, bu problemin bu yöntemin son 4 satırına ayrıldığı görülüyor, ancak neden emin değilim. Bir Platform.runLater(...)
bloğuna öğe listeleri değiştirmek kod parçalarını sarar hızlı bir düzeltme olarak
allStudentsList.getSelectionModel().selectedItemProperty()
.addListener((observableValue, oldValue, newValue) -> {
if (allStudentsList.getSelectionModel().getSelectedItem() != null) {
ArrayList<String> tempCurrent = new ArrayList<>();
for (String s : currentStudentList.getItems()) {
tempCurrent.add(s);
}
ArrayList<String> tempAll = new ArrayList<>();
for (String s : allStudentsList.getItems()) {
tempAll.add(s);
}
tempAll.remove(newValue);
tempCurrent.add(newValue);
// clears current studentlist and adds the new list
if (currentStudentList.getItems().size() != 0) {
currentStudentList.getItems().clear();
}
currentStudentList.getItems().addAll(tempCurrent);
// clears the allStudentList and adds the new list
if (allStudentsList.getItems().size() != 0) {
allStudentsList.getItems().clear();
}
allStudentsList.getItems().addAll(tempAll);
}
});
İstisna hangi satır atılıyor? –
allStudents.getItems(). Clear(); – Philayyy
allStudentsList.getItems() addAll (tempAll); – Philayyy