NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!

Diskuze – Lekce 7 - Upomínač narozenin v JavaFX - Propojení vrstev

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Paul
Člen
Avatar
Paul:7.2.2014 17:59

V sekci, kde popisuješ metodu "handlePridat­ButtonAction" jsi zaměnil název metody za "pridatJButton".
Konkrétně věta: "V obslužné metodě tlačítka pridatJButton již vytváříme novou instanci dialogu OsobaDialog."

Nechci bejt hnidopich, jen by to mohlo někoho mást.
Jinak opět super díl! ;-)

 
Odpovědět
7.2.2014 17:59
Avatar

Člen
Avatar
:7.3.2014 17:46

Potřeboval bych pomoct, podle návodu vše OK, ale mám takový problém.
Když jsem si zkoušel návod projít znovu a vytvořit OsobaDialog pomocí formuláře FXML vše v pohodě. Našel jsem problém, když jsem chtěl vytvořit FXML ze třídy FXMLOsobaDialog­Controller i když jsem dal extends Stage a snažil se správně upravit konstruktor tak Netbeans pořád házel chybu. To jsem vyřešil pomocí další třídy (OsobaDialog), která se stala třídou pro vyvolání a nastavení(title, modality, style,...) FXML souboru.
Potom se FXML konečně vytvořilo, ale když sem došel k tomuto kroku tak jsem narazil na problém s nastavením akce na tlačítko přidej( v OsobaDialog) nevím jak mám nastavit výše zmíněnou metodu hide() pro stage. Nevěděl byste někdo co s tím? Díky.¨

jinak ta metoda se ukrývá zde:

tlacitko.setOnAction(new EventHandler<ActionEvent>() {
        @Override public void handle(ActionEvent e) {
                try {
                        Calendar narozeniny = Datum.naparsuj(datumTextField.getText());
                        osoba = new Osoba(jmenoTextField.getText(), narozeniny);
                        **hide();**
                } catch (ParseException | IllegalArgumentException ex) {
                        System.out.println("Chyba: " + ex.getMessage());
                }
        }
});

Pokud budete chtít rád přiložím projekt.

 
Odpovědět
7.3.2014 17:46
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Paul
David Hartinger:21.3.2014 17:11

Díky, špatně bylo jenom to J, tlačítko se jmenuje pridatButton.

Odpovědět
21.3.2014 17:11
New kid back on the block with a R.I.P
Avatar
Neaktivní uživatel:24.9.2014 18:32

Chtěl bych se zeptat proč se mi aplikace ve swingu spustí hned ale v FX to trvá třeba deset sekund.

Odpovědět
24.9.2014 18:32
Neaktivní uživatelský účet
Avatar
LukyH
Člen
Avatar
LukyH:27.12.2014 20:20

U metody odebratButton píšete o přetypování na typ Object. Toto se domnívám by platilo ještě před vydáním JDK5 kdy se poprvé objevila genericita. A v kontroléru přece máme:

private ListView<Osoba> osobyListView;

. Dále mi není zcela jasné použití klíčového slova final u datumTextField ve třídě OsobaDialog. To označení přece jen zajišťuje chránění příslušné (v tomto případě lokální) proměnné před dalšími změnami. Kód jsem skompiloval v Javě 8 bez jakýchkoliv problémů nebo varování. Při spuštění aplikace jsem zatím také nenarazil na problémy. Jsou snad s tímto ve starších verzích Javy problémy nebo jaké jsou důvody použití této konstrukce? Jinak pěkný článek o JavaFX.

 
Odpovědět
27.12.2014 20:20
Avatar
kavalekp
Člen
Avatar
kavalekp:22.1.2015 11:15

Pro ty z vas ktery pouzivaji IntelliJ Idea, je zapotrebi v Project Structure -> Project Settings -> Molules, a nastavit Project language level na 7.0 - Diamonds, ARM, multi-catch etc. jinak catch blok v tlacitko.setO­nAction neprojde.

 
Odpovědět
22.1.2015 11:15
Avatar
roman64
Tvůrce
Avatar
roman64:14.7.2015 14:40

Mám problém. OsobaDialog:
catch (ParseException | IllegalArgumen­tException ex) Netbeans mi píše že mám odstranit (remove) klauzuly **ParseException ** (import java.text.Par­seException; proveden). Hlásí to jako trvdou chybu se žárovkou. Pak neodchytne, když je chyba na parse. Chyby z Osoba (krátké jmné a budoucí datum odchytne). V čem by mohla být příčina? Celý zdroják :
http://www.itnetwork.cz/dev-lighter/619

Editováno 14.7.2015 14:43
Odpovědět
14.7.2015 14:40
Definice šílenství je dělat stejnou věc znovu a znovu a očekávat jiné výsledky.“ Albert Einstein.
Avatar
Odpovídá na roman64
Petr Štechmüller:14.7.2015 14:49

Zkuste nahradit

ParseException | IllegalArgumentException

jenom za obyčejnou vyjímku

Exception

pak by to mělo fungovat určitě...

Odpovědět
14.7.2015 14:49
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
roman64
Tvůrce
Avatar
roman64:14.7.2015 21:21

Exception zafungoval :-) . Dík. příčina asi bude v použité mětodě parsování datumu. Používám novou třídu LocalDate a tuto notaci: LocalDate datumNarozeniny = LocalDate.par­se(datumNaroze­niTextField.get­Text(), DateTimeFormat­ter.ofLocalized­Date(FormatSty­le.MEDIUM));. To by vysvětlovalo i skutečnost, že v případě otevření "Upominacnaro­zenin4.zip" Netbeans nenutí ParseException odstranit (neb je tam použitá jiná metoda parsování).

Odpovědět
14.7.2015 21:21
Definice šílenství je dělat stejnou věc znovu a znovu a očekávat jiné výsledky.“ Albert Einstein.
Avatar
petr.fiala
Člen
Avatar
petr.fiala:9.7.2016 15:29

děkuji za pěkný přehledný tutoriál. Zajímalo by zda jsem správně odpozoroval, že v případě, kdy vytváříme nové okno čistě pomoci Javy (OsobaDialog) v podstatě view a controller spojujeme do jedné třídy?

 
Odpovědět
9.7.2016 15:29
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 10 zpráv z 19.