Jak przekazać wartość z comboBox do konstruktora

0

Mam jakiś przykładowy konstruktor

Zawody zawody = new Zawody(yearZ, monthZ, dayZ, hZ, mZ, zapisy, miejsceZawodow, dystansZawodow);

Jak z combobox np.

 ObservableList<Zawody> zawodyList = FXCollections.observableArrayList(
        new Zawody("Warszawa"),
        new Zawody("Poznań"));
 comboBoxDystans.getItems().addAll(zawodyList);

przekazac wartosc wybrana z combobox do konstruktora w tym przykladzie miejsceZawodow.
robię

String  miejsceZawodow = comboBoxMiejsce.getValue().toString();

Ale wyskakuje bład at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2566)
... 62 more
Caused by: java.lang.NullPointerException
at mws.ZawodyController.initialize(ZawodyController.java:67)
... 72 more

2

Nie żebym się znała na javieFX ale:

Masz błąd

Caused by: java.lang.NullPointerException

W momencie wywołania:

String  miejsceZawodow = comboBoxMiejsce.getValue().toString();

value jest null i leci wyjątek.

Spójrz na program i pobieraj wartość dopiero po ustawieniu w comboboxie (możesz też wstawić sprawdzenie czy wartość została wybrana/jest nie nullowa)

0

Dziękuję za odp. Masz rację. Dodałem

if(comboBoxMiejsce.getValue().toString()!=null){miejsceZawodow =comboBoxMiejsce.getValue().toString();}

i teraz powinno wszystko działac.

0

Działa poprawnie działa też przy zapisie

if(comboBoxMiejsce.getValue() != null){miejsceZawodow =comboBoxMiejsce.getValue().toString();}
0

Mam podobny problem z combobox tylko że wartość to double

private double dystansZawodow;
if(comboBoxMiejsce.getValue() != null){miejsceZawodow =comboBoxMiejsce.getValue().toString();}
     if(comboBoxDystans.getValue() != null) {dystansZawodow =  parseDouble(comboBoxDystans.getValue().toString());}

Nie wiem w jaki sposoób przekazać do konstruktora double z combobox

0

Poprawione
miałem

   @FXML private ComboBox<Zawody> comboBoxDystans;

zamiast

@FXML private ComboBox<Zawody> comboBoxDystans;
```java

1 użytkowników online, w tym zalogowanych: 0, gości: 1