IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: úprava upomínače z tutoriálů JavaFx

Aktivity
Avatar
Vít Vlach
Člen
Avatar
Vít Vlach:29.11.2018 16:06

Ahoj, snažím se upravit upomínač narozenin z ukázek tak, aby byli všechna okna udělaná v FXML. Vše bylo v pohodě, dokud jsem nechtěl vytvořit druhé okno.

Vždy, když jsem to chtěl spustit, tak program se mi spustil, ale jakmile jsem klikl na tlačítko Přidat (které u mě vyvolávalo nové okno), tak se mi začaly vyvolávat chyby.

Exception in thread "JavaFX Application Thread" java.lang.RuntimeException:                     java.lang.reflect.InvocationTargetException
                at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1774)
                at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657)
                at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
                at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
                at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
                at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
                at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
                at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
                at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
                at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
                at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
                at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
                at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
                at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
                at javafx.event.Event.fireEvent(Event.java:198)
                at javafx.scene.Node.fireEvent(Node.java:8411)
                at javafx.scene.control.Button.fire(Button.java:185)
                at upominacnarozenin.FXMLDocumentController.handlePridatButtonAction(FXMLDocumentController.java:73)

atd.

Když jsem si tyto chyby prohlížel, našel jsem odkaz na jeden řádek kódu

Parent root1 = (Parent) fxmlLoader.load();

Celý kód tlačítka:

try {
            FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/PridaniNoveOsoby.fxml"));
            Parent root1 = (Parent) fxmlLoader.load();
            Stage newstage = new Stage();
            newstage.setScene(new Scene(root1));
            newstage.showAndWait();

        }
        catch (IOException e) {
            e.printStackTrace();
            System.out.println("Děláš to blbě!!");
        }

Zkusil jsem: googlil jsem (všude doporučovali způsob, který obsahoval právě tuto část kódu), prolézal jsem celý kód (a našel a opravil všechny chyby kromě této :-) )

Chci docílit: Zobrazení dalšího okna

Editováno 29.11.2018 16:09
Odpovědět
29.11.2018 16:06
My code doesn't work. Let's change nothing and run it again.
Avatar
Odpovídá na Vít Vlach
Petr Štechmüller:29.11.2018 16:49

Ahoj, s největší pravděpodobností máš špatně nastavenou cestu k tomu FXML souboru.

Nahoru Odpovědět
29.11.2018 16:49
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Vít Vlach
Člen
Avatar
Odpovídá na Petr Štechmüller
Vít Vlach:29.11.2018 17:42

To jsem si prvně taky myslel, ale cesta vypadá, že je nastavená dobře. Je správná forma cesty (nazevSouboru­.fxml)?

Nahoru Odpovědět
29.11.2018 17:42
My code doesn't work. Let's change nothing and run it again.
Avatar
Odpovídá na Vít Vlach
Petr Štechmüller:29.11.2018 17:44

Píše se v té vyjímce něco jako "... location is not set"? Pokud ano, tak je určitě problém v cestě...
Forma cesty je dobrá, otázka je, zda-li opravdu ukazuješ na správný soubor...

Nahoru Odpovědět
29.11.2018 17:44
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Vít Vlach
Člen
Avatar
Odpovídá na Petr Štechmüller
Vít Vlach:29.11.2018 17:53

Mezi výjimky co jsem našel byla výjimka constructLoadEx­ception, loadImpl, dále odkaz na ten řádek z původní zprávy, NativeMethodAc­cessorImpl

Editováno 29.11.2018 17:53
Nahoru Odpovědět
29.11.2018 17:53
My code doesn't work. Let's change nothing and run it again.
Avatar
Odpovídá na Vít Vlach
Petr Štechmüller:29.11.2018 17:54

Tak bez kódu asi těžko poradím. Jestli můžeš, hoď sem FXML soubor, jeho kontroler a pak kód, kde to načítáš.

Nahoru Odpovědět
29.11.2018 17:54
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.