Jak przekazać wartość z comboBox do konstruktora

Odpowiedz Nowy wątek
2018-11-28 22:47
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

Pozostało 580 znaków

2018-11-29 00:02
1

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)

Pozostało 580 znaków

2018-11-29 00:19
0

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

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

i teraz powinno wszystko działac.

Testowałeś to? Jeśli nie to przetestuj bo od razu widać że niekoniecznie ma to sens. To nie toString jest null. - eL 2018-11-29 07:25

Pozostało 580 znaków

2018-11-29 08:52
0

Działa poprawnie działa też przy zapisie


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

Pozostało 580 znaków

2018-11-29 20:10
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

Pozostało 580 znaków

2018-11-30 00:22
0

Poprawione
miałem

   @FXML private ComboBox<Zawody> comboBoxDystans;

zamiast


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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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