У вас, похоже, есть опечатка, поэтому я предполагаю, что private ArrayList = null действительно:
private ArrayList kundeListe = null;
Код выглядит хорошо (я догадываюсь о некоторых контекстах), хотя есть некоторые вещи, которые я бы улучшил. Он создает новый список только тогда, когда «kundeListe» равен нулю, поэтому список не стирается. Поэтому, если вы вызовете initForsikredeKunder () во второй раз, все, что он сделает, это добавит второго «клиента».
По сути, вы можете просто несколько раз вызывать initForsikredeKunder (), и он будет работать нормально.
Я бы переименовал initForsikredeKunder в «add» вместо init. Это действительно операция добавления, которая также обрабатывает отложенную инициализацию списка поддержки.
Идя дальше, вы можете сделать это:
private List<Kunde> kundeListe = new ArrayList<>();
и удали ленивый инициал:
public void addKunder (Kunde customer) {
kundeListe.add(customer);
}
Примечание: я не на 100% понял ваше повествование выше, так что я могу неправильно понять, что происходит. Если это «диалоговое окно / окно» работает только с одним клиентом, вам даже не нужно использовать Список!
Редактируется после предоставления дополнительной информации:
Исходя из вашего кода, похоже, что исходное диалоговое окно не используется повторно. С новой частью FXMLLoader () все в порядке.
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("FXMLDocument.fxml"));
Parent tableViewParent = loader.load();
Scene tableViewScene = new Scene(tableViewParent); //Access the controller and call the method
FXMLDocumentController controller = loader.getController();
controller.initForsikredeKunder(valgtKunde); // having trouble finding what it should say instead of = new FXMLLoader();
Так что, вероятно, самая простая вещь, которую нужно сделать, если для вашего диалога требуется несколько клиентов, это просто передать более одного с помощью вызова initForsikredKunder ().
Как насчет этого?
public void initForsikredeKunder (Kunde... customer) {
if(kundeListe == null) {
kundeListe = new ArrayList<Kunde>();
}
for (Kunde cust : customer) {
this.kundeListe.add(cust);
}
}
Затем измените вызов initForsikredeKunder () следующим образом:
controller.initForsikredeKunder(valgtKunde1, valgtKunde2, valgtKunde3);//Add as many as you need
Если у вас уже есть длинный список «valgtKunde»:
public void initForsikredeKunder (List<Kunde> customers) {
if(kundeListe == null) {
kundeListe = new ArrayList<Kunde>();
}
this.kundeListe.addAll(customers);
}
... и передать список initForsikredeKunder (customerList);
Это тот тип вещей, где более широкий контекст имеет значение, но, к сожалению, мне сложно передать все это здесь, я думаю, поэтому могут потребоваться некоторые корректировки в зависимости от более широкого контекста. (т.е. с какими данными вы начинаете и что поддерживает функциональность диалога)