Kurz 4 IT 115 od ZS 2015 7. cvičení Další komponenty GUI menu, zobrazení HTML souboru, Alena Buchalcevová katedra informačních technologií Vysoká škola ekonomická v Praze buchalc@vse. cz
Doplnění menu do adventury Do adventury přidáme menu, které bude mít následující položky: Soubor § Nová hra CTRL- N § Konec Nápověda § O programu § Nápověda k aplikaci F 1 2 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Java. FX API třídy pro menu § Menu. Bar lišta s menu § Menu. Item § Menu § Check. Menu. Item § Radio. Menu. Item § Custom. Menu. Item § Separator. Menu. Item § Context. Menu 3 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Doplnění menu do adventury § § Je potřeba deklarovat a inicializovat potřebné prvky: § Menu. Bar § Menu jednotlivá menu na liště § Menu. Item jednotlivé položky v menu do instance lišty přidat menu, do instancí menu přidat menu položky, § nastavení dalších vlastností položek a menu § rychlá klávesa Nápověda k aplikaci F 1 4 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Doplnění menu a další úpravy adventury - kroky krok 1 zobrazení menu Soubor, položky Nová hra, Konec krok 2 doplnění události pro položku Konec krok 3 doplnění události pro položku Nová hra krok 3 a ovladač události krok 3 b doplnění nových metod, které zaregistrují pozorovatele po spuštění nové hry krok 4 menu Nápověda, položky O programu a Nápověda k aplikaci krok 5 doplnění události položky O programu krok 6 doplnění události položky Nápověda k aplikaci 5 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Krok 1 zobrazení menu Soubor, položky Nová hra, Konec 6 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Krok 1 zobrazení menu Soubor, položky Nová hra, Konec Třída Adventura. Zakladni private Menu. Bar menu. Bar; private void init. Menu() { menu. Bar = new Menu. Bar(); deklarace atributu metoda Init. Menu // --- Menu Soubor Menu menu. Soubor = new Menu("Soubor"); // Menu. Item nova. Hra = new Menu. Item("Nová hra"); Menu. Item nova. Hra = new Menu. Item("Nová hra", new Image. View(new Image(Adventura. Zakladni. class. get. Resource. As. Stream(". . /zdroje/new. gif")))); nova. Hra. set. Accelerator(Key. Combination. key. Combination("Ctrl+N")); Menu. Item konec = new Menu. Item("Konec"); nastavení rychlých kláves menu. Soubor. get. Items(). add. All(nova. Hra, new Separator. Menu. Item(), konec); 7 menu. Bar. get. Menus(). add. All(menu. Soubor); } Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Krok 1 zobrazení menu Soubor, položky Nová hra, Konec Třída Adventura. Zakladni /2 metoda start public void start(Stage primary. Stage) { … init. Menu(); Scene scene = new Scene(new VBox(), 800, 650); ((VBox) scene. get. Root()). get. Children(). add. All(menu. Bar, border); primary. Stage. set. Title("Adventura"); 8 spusťte aplikaci Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Krok 2 doplnění události pro položku Konec metoda init. Menu. Item konec = new Menu. Item("Konec"); konec. set. On. Action(new Event. Handler
Nastavení mnemonic § § Na menu item nastavit mnemonic parsing na true (u Menu. Item je implicitně) Do textu v menu item text, umístěte podtržítko _ před znak, který má být mnemonic klávesou Aktivujte pomocí ALT + mnemonic Aba bylo podtržené písmeno v aplikaci vidět, musíte stisknout ALT metoda init. Menu. Item konec = new Menu. Item("_Konec"); konec. set. Mnemonic. Parsing(true); 10 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Krok 3 doplnění události pro položku Nová hra Krok 3 a ovladač události metoda Init. Menu nova. Hra. set. On. Action(new Event. Handler
Krok 3 b doplnění nových metod, které zaregistrují pozorovatele po spuštění nové hry doplnění třídy Okno. Prostoru /** * Metoda zaregistruje pozorovatele k hernímu plánu při spuštění nové hry. * * @param plan */ public void nastaveni. Herniho. Planu (Herni. Plan plan){ this. plan = plan; plan. zaregistruj. Pozorovatele(this); this. aktualizuj(); } 12 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Krok 3 b doplnění nových metod, které zaregistrují pozorovatele po spuštění nové hry doplnění třídy Panel. Vychodu /** * Metoda zaregistruje pozorovatele k hernímu plánu při spuštění nové hry. * @param plan */ public void nastaveni. Herniho. Planu (Herni. Plan plan){ this. plan = plan; plan. zaregistruj. Pozorovatele(this); this. aktualizuj(); } 13 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Krok 4 zobrazení menu Nápověda a položek O programu a Nápověda k aplikaci doplňte menu Nápověda menu. Napoveda doplňte v něm položku O programu o. Programu doplňte v něm položku Nápověda k aplikaci napoveda. KAplikaci 14 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Krok 4 zobrazení menu Nápověda a položek O programu a Nápověda k aplikaci metoda Init. Menu menu. Napoveda = new Menu("Nápověda"); Menu. Item o. Programu = new Menu. Item("O programu"); Menu. Item napoveda. KAplikaci = new Menu. Item("Nápověda k aplikaci"); napoveda. KAplikaci. set. Accelerator(Key. Combination. key. Combination("F 1")); nastavení rychlých kláves menu. Napoveda. get. Items(). add. All(o. Programu, new Separator. Menu. Item(), napoveda. KAplikaci); menu. Bar. get. Menus(). add. All(menu. Soubor, menu. Napoveda); 15 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Jednoduchá dialogová okna § Pro použití Java. FX Dialogs je třeba JDK 8 u 40 a vyšší § Pěkný tutoriál je na http: //code. makery. ch/blog/javafx-dialogs-official/ Na VŠE je nainstalovaná starší verze Javy, takže třídu Alert nelze použít 16 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Krok 5 doplnění události položky O programu ve verzi Javy 8 u 40 a vyšší metoda Init. Menu o. Programu. set. On. Action(new Event. Handler
Vycentrování alert okna vůči rodičovskému oknu § nastavte jako rodičovskou komponentu pro alert primary. Stage alert. init. Owner(primary. Stage); primary. Stage je ale třeba udělat atributem třídy Adventura. Zakladni 18 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Krok 5 doplnění události položky O programu v starší verzi Javy metoda Init. Menu o. Programu. set. On. Action(new Event. Handler
Krok 6 doplnění události položky Nápověda k aplikaci § Na volbu položky Nápověda k aplikaci se má zobrazit HTML soubor v samostatném okně metoda Init. Menu napoveda. KAplikaci. set. On. Action(new Event. Handler


