Wpis z mikrobloga

@bloodguy: W klasie B piszesz sobie get-er, który zwraca Ci wybrany element z listy, edytujesz go w klasie C i set-erem dodajesz znów do listy w klasie B (musisz zadbać w jakiś sposób, żeby nie wisiał na liście w dwóch wersjach). Tak naprawdę jest wile sposobów na zrobienie tego. Rusz głową.
Ciezko powiedziec jak masz rozwiazana ta liste, jedna z metod to unikatowe ID dla Twojego obiektu A.
Klasa A YourObject niech zawiera pole z unikatowym id np
private int myUniqueId;
Klasa B // getter public YourObject getObjectFromList(int yourUniqueId){

for(YourObject object : yourList){
if(object.getMyUniqueId() == yourUniqueId){
return object;}
}
return null;
} //setter
public void updateObjectOnList(YourObject yourObject)
{
for(int i = 0; i < yourList.size(); i++){
if(yourList.get(i).getMyUniqueId() == yourObject.getMyUniqueId()) {
yourList.remove(i);
yourList.add(i, yourObject);}
@bloodguy: Przejrzałem kod. Problem leży w sposobie w jaki instancujesz klasy będące kontrolerami elementów UI: Controller i PersonEditDialogController. Obecnie jest tak, że obiekty obu klas tworzone są przez FXMLLoader, inaczej mówiąc przez odwołanie, które wpisujesz w plikach .fxml. To rozwiązanie, które pokazane jest m.in. w tutorialach JavaFX, jest moim zdaniem dość niewygodne, ponieważ utworzenie obiektu kontrolera (tj. załadowanie klasy będącej kontrolerem danego elementu UI) następuje przez załadowanie pliku .fxml.

Przeczytaj sobie