IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 7. diel - PRIPOMIENKOVÉ narodenín v JavaFX - Prepojenie vrstiev

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
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! ;-)

 
Odpovedať
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.

 
Odpovedať
7.3.2014 17:46
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Paul
David Hartinger:21.3.2014 17:11

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

Odpovedať
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.

Odpovedať
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.

 
Odpovedať
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.

 
Odpovedať
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

Editované 14.7.2015 14:43
Odpovedať
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
Odpovedá 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ě...

Odpovedať
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í).

Odpovedať
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?

 
Odpovedať
9.7.2016 15:29
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!