Úvod do JavaFX RICHARD LIPKA

Rozměr: px
Začít zobrazení ze stránky:

Download "Úvod do JavaFX RICHARD LIPKA"

Transkript

1 Úvod do JavaFX RICHARD LIPKA

2 GUI a OS OS (jeho moduly) poskytuje funkce pro vytváření oken a základních GUI prvků Ve Windows Win32 / Win64 / WinCE API V OS X Cocoa, Quartz V Linuxu není v OS, X Windows, Simple DirectMedia Layer, Vysokoúrovňové knihovny s vlastními prvky GTK+ (Gnome), Qt (KDE), wxwidgets Volba technologie ovlivňuje: Rychlost GUI (nativní obvykle rychlejší) Vzhled (standardní pro daný OS nebo vlastní) JavaFX Kompletně vykreslována prostředky Javy (= platformě nezávislá) Vlastní look and feel (definovaný CSS styly lze snadno měnit) = nevypadá jako standardní Windows / MacOS aplikace UUR - ÚVOD DO JAVAFX 2

3 API pro GUI v Javě AWT (Abstract Window Toolkit) Starší, jednodušší, rychlejší (navázáno na volání OS API vzhled podle OS) Původní GUI v Javě Swing Novější, velmi komplexní (30 komponent) Pomalejší, vlastní vykreslování nezávislé na OS; ale bez nativního kódu, čistá Java Souběžně využívá některé věci z AWT (vychází z něj, přebírá událostní model, fonty, barvy, layouty) Velký důraz na MVC architekturu Existují nad ním vybudované knihovny (JGoodies) SWT Vytvořeno IBM, využité v Eclipse Využívá nativní kód, jednodušší než Swing JavaFX Moderní náhrada za Swing, od Java 8 má je součástí JRE/JDK Jednodušší práce s událostmi, deklarativní popis oken, využití CSS a HTML (stejná jména tříd jako u AWT) UUR - ÚVOD DO JAVAFX 3

4 JavaFX Oficiálně součástí Javy od verze 8 (březen 2014) První verze 2008 jako speciální skriptovací jazyk, v současné podobě od JavaFX 2.0 od r není to úplně nová a nevyzkoušená technologie Potřebuje vlastní běhové prostředí Od Javy 8 součástí JRE / JDK, do Javy 7 se dá doinstalovat Platformě závislé (stejně jako JRE) k dispozici pro Windows, Linux, MacOS, Solaris Existuje projekt JavaFXPorts (pod GluonMobiles, trial je zdarma) pro spouštění JavaFX aplikací na Androidu JavaFX Scene builder WISYWIG návrhář aplikace Návrh rozložení prvků, layoutů, podpora pro nastavení obsluh Funguje jen pro FXML soubory (neumí generovat zdrojový text Javy) Silná podpora CSS, lokalizačních souborů, tvorby kontrolerů Oracle ukončil vlastní vývoj, momentálně pod Gluon (zdarma, poslední verze z října 2017) UUR - ÚVOD DO JAVAFX 4

5 Drag and drop programování vs psaní zdrojového textu ručně Existují nástroje pro naklikání GUI JavaFX Scene Builder jako samostatná aplikace jako plugin do Eclipse, Netbeans, IntelliJ Idea Tvoří jen FXML soubory (XML popis GUI), ne volání z API podporuje dobré návyky rychlejší vývoj GUI aplikací, příprava formulářů ALE? Debugování programu, zejména složitých oken?? Recyklace formulářů bez zbytečného opakování?? Tvorba automatických testů (unit testy)?? Dynamické generování GUI podle dostupných dat? UUR - ÚVOD DO JAVAFX 5

6 JavaFX podporované technologie API V Javě, použitelné v dalších jazycích založených na JRE (jruby, Scala) FXML deklarativní popis GUI v XML souboru ( oddělení view od zbytku programu) CSS Nastavení vzhledu oddělené od definice view i od programu HTML schopnost zobrazovat a pracovat s HTML 5 (WebKit = Safari, OS X) Swing schopnost pracovat se Swing komponentami Dotyková zařízení podpora dotykových a vícedotykových gest Rich text podpora obousměrného textu (arabské jazyky), mnoha abeced a formátování textu v komponentách Grafika podpora 2D a 3D grafiky, na některých kartách podpora akcelerace (přehled podporovaných karet v dokumentaci) Média podpora pro přehrávání videa a zvuku (včetně streamování) Nasazení aplikace podpora pro vytvoření plně spustitelného programu (balí se do něj JRE a JavaFX) UUR - ÚVOD DO JAVAFX 6

7 Struktura knihovny Middleware pro ostatní moduly, řízení vláken Knihovny se kterými budete pracovat Získávání zdrojů z OS (okna, časovače, plochy ke kreslení) Vykreslovací jádro SW kreslení a spojení s GPU Kodeky, práce s kontejnery Webkit Převzato z UUR - ÚVOD DO JAVAFX 7

8 Základní aplikace Vstupní bod programu - třída Application Musí být děděna (abstraktní) Zahajuje vytváření GUI (metody init() a start() ) Ukončuje běh aplikace (metoda stop()) Běží ve vlastním vlákně (JavaFX Application Thread) Celá tvorba GUI Obsluhy všech událostí Ukončení: Patform.exit() preferované System.exit() funguje, ale pak se nevolá metoda stop() Vytvoření instance třídy Application Spuštení metody init() vlastní vlákno (spouštěč) Vytvoření instance scény Stage Spuštení metody start() vlastní vlákno Čeká na ukončení Volání metody stop() UUR - ÚVOD DO JAVAFX 8

9 Hello World okno public class HelloWorld extends Application { } public void start(stage primarystage) { Button btn = new Button(); btn.settext("say 'Hello World'"); } StackPane root = new StackPane(); root.getchildren().add(btn); Scene scene = new Scene(root, 300, 250); primarystage.settitle("hello World!"); primarystage.setscene(scene); primarystage.show(); public static void main(string[] args) { launch(args); } UUR - ÚVOD DO JAVAFX 9

10 FXML Hello World BorderPane border = new BorderPane(); Label toppanetext = new Label("Page Title"); border.settop(toppanetext); Label centerpanetext = new Label ("Some data here"); <BorderPane> <top> <Label text="page Title"/> </top> <center> <Label text= "Some data here"/> </center> </BorderPane> border.setcenter( centerpanetext); UUR - ÚVOD DO JAVAFX 10

11 Jeviště (Stage) top level container Obvykle reprezentuje 1 okno aplikace (nemusí) Aplikace funguje dokud je na obrazovce alespoň jedno okno Kontejner může obsahovat další komponenty Komponenty uloženy v Grafu scény (Scene, ve skutečnosti strom) Obsahuje uzly (Node) - společný předek pro všechny komponenty GUI Další kontejnery (panely, skupiny, menu) - root Ovládací prvky (tlačítka) Zobrazovací prvky (tabulky, grafy, stromy) Vstup od uživatele (textová pole, zaškrtávací políčka) UUR - ÚVOD DO JAVAFX 11

12 Prvek scény - Node Jakýkoliv element scény který vidíte Obsahuje ID (textová identifikace pro CSS), musí být unikátní, pokud je nastaveno (potřeba hlavně ve FXML) StyleClass třída (nebo několik tříd) pro CSS Parent rodič uzlu (nadřazený prvek) UserData s uzlem lze spojit jeden datový objekt + cokoliv dalšího podle konkrétní komponenty Lze na něj aplikovat Efekty (stíny, rozmazání, ) Průhlednost Transformace (pozice, natočení, zvětšení, zkosení) Může odchytávat události a reagovat na ně UUR - ÚVOD DO JAVAFX 12

13 Struktura scény V kořeni musí být kontejner (potomek Parent panely, toolbary, ) Každá komponenta vložena jen jednou Node má rodiče, při opětovném vložení se rodič změní (automaticky) Lze vytvářet hierarchii do sebe vnořených panelů layoutování Změny pozice a velikosti podle změny velikosti okna Struktura by měla odrážet logiku používání okna (u složitých formulářů) Řídící panel Obsahový panel OK tlačítko Storno tlačítko Zobrazovací panel Textová oblast Scene Hlavní panel Menu Sobor Menu Položka 1 Položka 2 Menu Nápověda UUR - ÚVOD DO JAVAFX 13

14 Reprezentace GUI v počítači SCÉNA Sada objektů k vykreslení Tlačítka, panely, tabulky, Mají určené: Pozice, rozměry, nadřazené prvky Vzhled Obslužné objekty lze detekovat události lze jimi manipulovat Zpracování Souřadnice pro detekci událostí Překreslení jen toho co je potřeba Nutné převést na obrázek (u nativního GUI to zařídí OS) VYKRESLOVANÝ OBRAZ Bitmapa 2D pole pixelů (barev) Mohou být 2 double buffering Může být přímo vykreslen na zobrazovací zařízení (existují i vektorová neobvyklé) Práce s ním hlavně ve fullscreenu Hry, 3D grafika, přehrávání videa lze získat i okno pro vykreslování (místo nativního GUI knihovna kreslí všechno sama) Zpracování Přímé změny barvy na pixelu Pravidelné překreslení (snímkovací frekvence) UUR - ÚVOD DO JAVAFX 14

15 Společné vlastnosti všech uzlů Souřadnice getboundsinlocal() netransformované lokální souřadnice getboundsinparent() transformované souřadnice v prostoru rodiče contains(), intersect() testuje jestli je bod / obdélník uvnitř uzlu (jen obalový obdélník) screentolocal(), LocalToScreen(), ParentToLocal(), LocalToParent() transformuje souřadnice scény, uzlu a rodiče Viditelnost a použitelnost setvisible() viditelnost uzlu (a potomků) vyřazuje z grafu setopacity() nastavení průhlednosti (1 - neviditelné) stále vykreslován setdisable() nastavení uzlu (a potomků) na vypnuto toback(), tofront() pohyb v rámci pole potomků UUR - ÚVOD DO JAVAFX 15

16 Specializované uzly potomci Node Shape, Shape3D Společný předek pro obecné tvary (kruhy, čáry, ) Vlastnosti jako je barva výplně a ohraničení, styl čáry, konce čar Canvas Plocha pro vlastní kreslení ( bitmapové ) ImageView Uzel pro vykreslování obrázků (Image png, jpg, gif) MediaView Uzel pro vykreslení obsahu média (MediaPlayer) Parent Společný předek pro uzly které mohou mít další potomky (grafy, panely) protected ObservableList<Node> getchildren() v panelech překryta veřejnou podobou Potomek je i Control tlačítka a další ovládací prvky SwingNode Uzel pro vložení Swing komponent zpětná kompatibilita UUR - ÚVOD DO JAVAFX 16

17 Vkládání komponent Node má potomky uložené v kolekci (rozhraní ObservableList<Node> - nová kolekce v JavaFX) Metoda add() a addall() pro vkládání dalších uzlů (mění i vkládaný uzel nastavuje mu předka!) Musím získat referenci na kolekci: parent.getchildren().add(newnode); Kořenový uzel se vkládá přes konstruktor: stage.setscene(new Scene(root, 300, 250)); Primární Stage získám jako parametr metody start(): public void start(stage primarystage) UUR - ÚVOD DO JAVAFX 17

18 Jmenné konvence Nejsou povinné, závisí na firemním prostředí ale mohou se hodit Lepší čitelnost programu Na druhé straně překladač i IDE typ reference zná a napovídá Nutné důsledně dodržovat v celém programu Pozor na míchání češtiny a angličtiny, někdy vadí více, někdy méně Pozor na kreativní mizzpelling nebo skutečné chyby (na druhé straně někdy může být záměrný - v knihovnách Javy např. Clazz) V JavaFX 2 typy jmen Jména referencí Identifikátory objektů a tříd pro CSS a FXML (vždy textové) - nepovinné Pozor, jména tříd JavaFX z package javafx, stejné jako jména z AWT Např. Button: okbutton, okbt, Menu: filemenu, filemn, Label: averagelabel, averagelb, UUR - ÚVOD DO JAVAFX 18

19 Dělení aplikace Objekty vždy zodpovědné za jednu věc, neměly by bát moc dlouhé rozumně dělit tvorbu GUI do metod Typické řešení: Privátní metody pro každý panel (skupinu prvků v GUI) nebo složitější komponentu (vyžaduje několik nastavení) Vrací hotový uzel (panel naplněný komponentami) Využívá volání dalších metod, pokud jsou uvnitř další panely Pro každé okno vlastní třída Vhodné konstruktory pro plnění daty? Pro složitější a znovupoužitelné komponenty (které nejsou v API) určitě vlastní třída Řídící panel Obsahový panel OK tlačítko Storno tlačítko Zobrazovací panel Textová oblast Scene Hlavní panel Menu Sobor Menu Položka 1 Položka 2 Menu Nápověda UUR - ÚVOD DO JAVAFX 19

20 Strukturování zdrojového textu Jen doporučení není povinné, ale zlepšuje přehlednost aplikace 1 třída 1 funkce Vstupní bod aplikace potomek Application pro každé okno vlastní třída (může a nemusí být potomek Stage) GUI by nemělo provádět funkce jádra aplikace propojit s ním přes vhodné rozhraní (= pokud aplikace ukládá do DB v obsluze se jen volá metoda jádra, ne samotné ukládání) 1 metoda 1 funkce Netvořit celé okno v jedné metodě Konvence: každý uzel stromu scény má vlastní metodu, která vrací Node a stará se o jeho vytvoření pokud je složen z dalších uzlů, volá potřebné metody Jednoduchá obsluha V obslužné metodě jen minimum kódu Ideálně 1 řádek který volá obslužnou metodu (nejspíš privátní) UUR - ÚVOD DO JAVAFX 20

21 Naslouchání událostem Události zachycené OS, předané do JavaFX frameworku Oznamují aplikaci že se něco stalo obvykle interakce s uživatelem Framework události většinu vytváří a posílá sám Reprezentované instancemi třídy Event Řada specializovaných potomků podle původce události a informací které nese (stisknutá klávesa, pohyb myši, ) Každá komponenta může naslouchat všem událostem, jen je třeba nastavit obsluhu Metody seton () např. setonaction(), setonmouseentered(), (zděděné z Node) UUR - ÚVOD DO JAVAFX 21

22 Událost Třída Event a její potomci Zdroj události (metoda getsource() ) kdo ji vyvolal rodič prvku Cíl události (metoda gettarget() ) kam událost směřuje (v grafu scény) (občas stejný objekt jako zdroj události) Typ události : umožňuje specifikovat detaily události (metoda geteventtype() ) UUR - ÚVOD DO JAVAFX 22

23 Propagace události Rozhraní EventTarget pokud může komponenta být cílem události (implementuje ho Window, Scene, Node) Klávesnice cílem je komponenta která má fokus Myš cílem komponenta pod kurzorem Dotyková gesta všechny body kterých se dotýkáte na začátku Pokud je komponent víc, bere se vrchní (na obrazovce list stromu) Při déletrvajícím gestu události předávány cíli ze začátku gesta Událost předávána ve stromu (scéna panely cíl) Projde skrz všechny rodiče ve scéně k cíli a zpět ke scéně Event capturing cesta dolů, filtry addeventfilter(eventtype, EventHandler) Event bubbling cesta nahoru, obsluhy addeventhandler(eventtype, EventHandler) Pohlcení události consume() UUR - ÚVOD DO JAVAFX 23

24 Doporučení pro obsluhu událostí Obsluha by měla být co nejkratší Běží ve stejném vlákně jako vykreslování GUI Pokud je dlouhá, provést ve vlastním vlákně Obsluha není / nemusí být součástí View vhodně ji oddělit do vlastního objektu nebo alespoň metody (alespoň kousek ji ve View vždycky zbyde) Delegovat na objekty, které mají potřebnou odpovědnost Nezapomenout na kontrolu dat Nemusí být součástí View, ale někde v obsluze se musí objevit UUR - ÚVOD DO JAVAFX 24

25 Obslužný objekt Jednotné rozhraní pro obsluhu všech typů událostí EventHandler Jediná metoda handle(t event), rozhraní typováno: EventHandler<T extends Event> na jakéhokoliv potomka třídy Event Podle metody seton () lze implementovat vhodný objekt MouseEvent pro události myši ActionEvent pro akce spuštěné v GUI (stisknuté tlačítko) KeyEvent pro stisknuté klávesy Základní obslužný objekt (Controller): public Class BTActionHNDL implements EventHandler<ActionEvent> { } public void handle(actionevent e) { } Button btn = new Button(); btn.setonaction( new ButtonActionHandler()); UUR - ÚVOD DO JAVAFX 25

26 Anonymní vnitřní třída Obsluha události je jen na jednom místě nepotřebuji celou třídu Nepřehledné pokud je obsluha delší neměla by být Button btn = new Button(); btn.setonaction(new EventHandler<ActionEvent>() { public void handle(actionevent e) { } }); Přímo ve volání metody setonaction() vytvořena nová třída jako implementace rozhraní EventHandler<ActionEvent> Typ zvolen podle metody která obsluhu registruje V metodě handle() je samotná obsluha UUR - ÚVOD DO JAVAFX 26

27 Malá odbočka k typům v parametrech metod EventHandler<ActionEvent> typováno na ActionEvent EventHandler<? super MouseEvent> typováno na MouseEvent (Event, InputEvent) a její předky ( spodní hranice) Typicky pro konzumenty pokud jen vkládám do kolekce (Object... MouseEvent) CssMetaData<? extends Styleable> typováno na Styleable a její potomky ( horní hranice) Typicky pro producenty pokud jen vybírám z kolekce (Styleable a potomci) Označení typů z API: E prvek (obvykle u kolekcí) K klíč V hodnota T obecně typ N číselný typ UUR - ÚVOD DO JAVAFX 27

28 Lambda výraz jako náhrada vnitřní třídy Anonymní vnitřní třídu lze přepsat na lambda výraz Pokud je parametrem reference na funkční rozhraní (1 metoda k implementaci, je vidět v dokumentaci k API) Button btn = new Button(); btn.setonaction(event -> { }); Typ parametru event odvodí překladač automaticky z definice metody setonaction(eventhandler<actionevent> value) UUR - ÚVOD DO JAVAFX 28

29 Privátní obslužné metody Ve vnitřní třídě / lambda výrazu volána jen jedna obslužná metoda Součást nadřazené třídy může být privátní nebo Z jiné třídy (Controller) Obsluha vnitřní třídy krátká a přehledná Button btn = new Button(); btn.setonaction(event -> btnactionperformed(event)); private void btnactionperformed(actionevent e) { } UUR - ÚVOD DO JAVAFX 29

30 Obsluha ve vlastním vlákně Dlouhá obsluha (komprese, odesílání, ukládání) celkem běžná Blokuje GUI zamrzne a nereaguje na uživatele potřebuji oddělit do vlastního vlákna Rozhraní Worker<V> pro implementaci vlákna Typováno na V typ návratové hodnoty (vlákno končí vrácením výsledku) Možnost řídit běh zvenku (na rozdíl od běžných Java vláken) musí zajistit implementující třída Lze se dotazovat na stav (isrunning(), getstate(), getprogress(), getmessage()) Implementace ve třídě Task<V> Metoda call() ve které je užitečná práce Musí se chovat hezky a podporovat řízení zvenku Běží na pozadí, dokáže informovat o stavu, neblokuje vykreslovací smyčku Explicitně určena pro použití v JavaFX Jednorázová při každé obsluze je třeba vytvořit novou instanci (existuje i znovupoužitelná Service<V>, ale to přináší některé komplikace) UUR - ÚVOD DO JAVAFX 30

31 Obsluha ve vlastním vlákně příklad základní smyčky Task<Integer> task = new Task<Integer>() { protected Integer call() throws Exception { int it; for (it = 0; it < ; it++) { if (iscancelled()) { break; } System.out.println("it " + iterations); } return it; } }; Thread th = new Thread(task); th.start(); UUR - ÚVOD DO JAVAFX 31

32 Obsluha ve vlastním vlákně smyčka s aktualizací stavu Task<Integer> task = new Task<Integer>() { protected Integer call() throws Exception { int it; for (it = 0; it < ; it++) { if (iscancelled()) { updatemessage("canceled"); break; } updatemessage("iteration " + it); updateprogress(it, ); } return it; } }; Thread th = new Thread(task); th.start(); UUR - ÚVOD DO JAVAFX 32

33 Děkuji za pozornost OTÁZKY? NÁZORY, PŘIPOMÍNKY? PŘÍŠTĚ: ZÁKLADNÍ LAYOUTY V JAVAFX

GUI. JavaFX. Java UI, letní semestr 2017/2018 1

GUI. JavaFX. Java UI, letní semestr 2017/2018 1 GUI JavaFX 1 Přehled Java GUI Java 1.0 (1996) AWT použití nativních GUI komponent Java 1.2 (2000) Swing kompletní GUI v Javě JavaFX (2007) nová technologie běžící nad Java VM ale vlastní jazyk deklarativní

Více

Aplikace s grafickým uživatelským rozhraním

Aplikace s grafickým uživatelským rozhraním Aplikace s grafickým uživatelským rozhraním doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz 1 Typy aplikací Konzolová

Více

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Bridge. Známý jako. Účel. Použitelnost. Handle/Body Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době

Více

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans. 1 Grafické rozhraní Studijní cíl Tento blok je věnován vytváření programů s využitím grafického rozhraní (GUI). Vysvětlen bude základní filozofie pro vytváření aplikací s GUI ve srovnání s konzolovými

Více

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky Google Web Toolkit Martin Šurkovský, SUR096 Vysoká škola Báňská - Technická univerzita Ostrava Katedra informatiky 29. března 2010 Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010

Více

8. GRAFICKÉ UŽIVATELSKÉ ROZHRANÍ

8. GRAFICKÉ UŽIVATELSKÉ ROZHRANÍ 8. GRAFICKÉ UŽIVATELSKÉ ROZHRANÍ Abstract Window Toolkit (AWT) je část Java Core API, kterou tvoří balíky: java.awt, java.awt.event (od JDK 1.1), java.awt.image, java.awt.datatransfer (od JDK 1.1). AWT

Více

Jazyk C# (seminář 9)

Jazyk C# (seminář 9) Jazyk C# (seminář 9) Pavel Procházka KMI 19. listopadu 2014 Motivace proč GTK# Moderní přístup k psaní GUI Základ (GTK+) je napsaný v C, ale podporuje celou řadu jazyků (Vala, Python, JavaScript, C#,...

Více

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 KAPITOLA 1 Na úvod o Javě 15 Počítačový program 15 Vysokoúrovňový programovací

Více

Abstraktní třída a rozhraní

Abstraktní třída a rozhraní Abstraktní třída a rozhraní Někdy se může stát, zejména při psaní v hierarchické struktuře hodně nadřazených tříd, že tušíme, že bude ve zděděných třídách vhodné použít nějakou metodu. Tuto metodu ještě

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

Obsah přednášky. GUI v Javě a událostmi řízené programování. Základní prvky grafického rozhraní. Základní komponenty.

Obsah přednášky. GUI v Javě a událostmi řízené programování. Základní prvky grafického rozhraní. Základní komponenty. GUI v Javě a událostmi řízené programování Obsah přednášky GUI v Javě (připomínka) Návrhář GUI Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 4 A0B36PR2

Více

Hiearchical MVC (Model-view-controller) vs. PAC (Presentation-abstraction-control)

Hiearchical MVC (Model-view-controller) vs. PAC (Presentation-abstraction-control) Hiearchical MVC (Model-view-controller) vs. PAC (Presentation-abstraction-control) Problém HMVC úvod MVC v určitých aplikacích nedostačující Příklad: webová stránka s widgety Např. kalendář, hodnocení,

Více

Multiplatformní GUI toolkity

Multiplatformní GUI toolkity Multiplatformní GUI toolkity GTK+ a Qt Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI GUI toolkit (widget toolkit) (1) = programová knihovna (nebo kolekce knihoven) implementující prvky

Více

GUI v Javě (připomínka) Návrhář GUI Příklad aplikace MVC Model-View-Controller Události Vnitřní třídy. MVC Model-View-Controller

GUI v Javě (připomínka) Návrhář GUI Příklad aplikace MVC Model-View-Controller Události Vnitřní třídy. MVC Model-View-Controller GUI v Javě a událostmi řízené programování Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 4 A0B36PR2 Programování 2 Obsah přednášky GUI v Javě (připomínka)

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 29. Otázka : Zpracování událostí: mechanismus událostí a jejich zpracování (Event/Listener), nepřímá invokace (Observer/Observable). Obsah : 1. Mechanisums

Více

GUI v Javě a událostmi řízené programování

GUI v Javě a událostmi řízené programování GUI v Javě a událostmi řízené programování Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 4 A0B36PR2 Programování 2 Jan Faigl, 2016 A0B36PR2 Přednáška

Více

Generické programování

Generické programování Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =

Více

SWT & MigLayout. Alternativy Java GUI v praxi. Pavel Janečka & Tomáš Chlouba. červen 2011

SWT & MigLayout. Alternativy Java GUI v praxi. Pavel Janečka & Tomáš Chlouba. červen 2011 SWT & MigLayout Alternativy Java GUI v praxi Pavel Janečka & Tomáš Chlouba červen 2011 SWT SWT & MigLayout Historie Komponenty a události Vývoj aplikací a ukázky MigLayout Java Layout Managery Ukázka použití

Více

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti NetBeans platforma Aplikační programování v Javě (BI-APJ) - 7 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme

Více

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Semináˇr Java X J2EE Semináˇr Java X p.1/23 Seminář Java X J2EE Seminář Java X p.1/23 J2EE Složitost obchodních aplikací robusní, distribuované, spolehlivé aplikace s transakcemi na straně serveru, klientské aplikace co nejjednodušší Snaha : Návrh,

Více

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9 Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií

Více

Programátorská příručka

Programátorská příručka KAPITOLA 1. PROGRAMÁTORSKÁ PŘÍRUČKA Kapitola 1 Programátorská příručka 1.1 Úvod 1.1.1 Technologie Program je psaný v jazyce Java 1.7. GUI je vytvářeno pomocí knihovny SWT. (http://eclipse.org/swt/) Pro

Více

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV) Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java

Více

2 Grafický výstup s využitím knihovny

2 Grafický výstup s využitím knihovny 2 Grafický výstup s využitím knihovny Studijní cíl Tento blok je věnován základním principům při vytváření grafického výstupu pomocí standardních metod, které poskytuje grafické rozhraní. V textu budou

Více

Java GUI události. Událostmi řízené programování. Zpracování = obsluha událostí

Java GUI události. Událostmi řízené programování. Zpracování = obsluha událostí Java GUI události Cílem kapitoly je přiblížit hlavní princip událostmi řízeného programování a ukázat na příkladu způsob řešení pro konkrétní případ. Soubor obsahuje také tabulku s přehledem nejčastěji

Více

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

Více

Obsah přednášky. GUI v Javě a událostmi řízené programování. Základní prvky grafického rozhraní. Základní komponenty.

Obsah přednášky. GUI v Javě a událostmi řízené programování. Základní prvky grafického rozhraní. Základní komponenty. GUI v Javě a událostmi řízené programování Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 6 B0B36PJV Programování v JAVA Obsah přednášky GUI v Javě

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Struktura programu Vytvoření nové aplikace Struktura programu Základní syntaktické elementy První aplikace Verze pro akademický rok 2012/2013 1 Nová aplikace NetBeans Ve vývojovém

Více

GUI v Javě a událostmi řízené programování

GUI v Javě a událostmi řízené programování GUI v Javě a událostmi řízené programování Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 6 B0B36PJV Programování v JAVA Jan Faigl, Jiří Vokřínek,

Více

GUI - úvod. V této kapitole si ukážeme návod, jak vytvořit jednoduchou grafickou aplikaci a umístit do ní některé další grafické prvky.

GUI - úvod. V této kapitole si ukážeme návod, jak vytvořit jednoduchou grafickou aplikaci a umístit do ní některé další grafické prvky. GUI - úvod V této kapitole si ukážeme návod, jak vytvořit jednoduchou grafickou aplikaci a umístit do ní některé další grafické prvky. Klíčové pojmy: Grafické uživatelské rozhraní, grafické komponenty,

Více

Java a XML. 10/26/09 1/7 Java a XML

Java a XML. 10/26/09 1/7 Java a XML Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis

Více

11 Diagram tříd, asociace, dědičnost, abstraktní třídy

11 Diagram tříd, asociace, dědičnost, abstraktní třídy 11 Diagram tříd, asociace, dědičnost, abstraktní třídy Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost diagramům tříd, asociaci,

Více

1. Úvod do obsluhy AutoCADu

1. Úvod do obsluhy AutoCADu 1. Úvod do obsluhy AutoCADu Studijní cíl V této lekci se naučíme: Seznámíme se s potřebným zařízením. Způsoby ovládání. Nastavení AutoCADu. Doba nutná k procvičení 1,5 hodiny 1.1 AutoCAD AutoCAD je plnohodnotný

Více

Java aplety. Předávání parametrů z HTML

Java aplety. Předávání parametrů z HTML Java aplety Aplety jsou speciální formou Java aplikací - mohou být spouštěny z prostředí WWW prohlížeče. Aby je prohlížeč spustil, musíme vložit do HTML stránky potřebné příkazy:

Více

GUI v Javě a událostmi řízené programování

GUI v Javě a událostmi řízené programování GUI v Javě a událostmi řízené programování Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 6 B0B36PJV Programování v JAVA Jan Faigl, Jiří Vokřínek,

Více

1. Programování proti rozhraní

1. Programování proti rozhraní 1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní

Více

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU 8.6.2011

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU 8.6.2011 Technologie Java Enterprise Edition Přemek Brada, KIV ZČU 8.6.2011 Přehled tématu Motivace a úvod Infrastruktura pro velké Java aplikace (Java základní přehled) Části třívrstvé struktury servlety, JSP

Více

Dědění, polymorfismus

Dědění, polymorfismus Programování v jazyce C/C++ Ladislav Vagner úprava Pavel Strnad Dědění. Polymorfismus. Dnešní přednáška Statická a dynamická vazba. Vnitřní reprezentace. VMT tabulka virtuálních metod. Časté chyby. Minulá

Více

TŘÍDY POKRAČOVÁNÍ. Události pokračování. Příklad. public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e);

TŘÍDY POKRAČOVÁNÍ. Události pokračování. Příklad. public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e); TŘÍDY POKRAČOVÁNÍ Události pokračování public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e); class Bod private int x; private int y; public event ZmenaSouradnicEventHandler ZmenaSouradnic;

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

První kapitola úvod do problematiky

První kapitola úvod do problematiky První kapitola úvod do problematiky Co je to Flex Adobe Flex je ActionSript (AS) framework pro tvorbu Rich Internet Aplications (RIA), tedy knihovna AS tříd pro Flash. Flex používáme k vytvoření SWF souboru

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

IRAE 07/08 Přednáška č. 7. Začátek (head)

IRAE 07/08 Přednáška č. 7. Začátek (head) Fronta (Queue) FIFO First In First Out (první dovnitř první ven) Vložení položky (Enqueue) Vyjmutí položky (Dequeue) Přidávání prvků Konec (Tail) Začátek (head) na jedné straně (konec) Odebírání prvků

Více

GUI. Systémová integrace pro desktopové aplikace

GUI. Systémová integrace pro desktopové aplikace GUI Systémová integrace pro desktopové aplikace Java, zimní semestr 2016 11.1.2017 1 java.awt.desktop systémová integrace desktopových aplikací static boolean isdesktopsupported() test zda je integrace

Více

Úvodem Seznámení s HTML Rozhraní Canvas... 47

Úvodem Seznámení s HTML Rozhraní Canvas... 47 Stručný obsah Úvodem... 17 1. Seznámení s HTML5... 21 2. Rozhraní Canvas... 47 3. Práce s audiem a videem v HTML5... 85 4. Geolokační rozhraní... 109 5. Komunikační rozhraní... 137 6. Rozhraní WebSocket...

Více

KTE / ZPE Informační technologie

KTE / ZPE Informační technologie 4 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Největší

Více

Uživatelská rozhraní 10. cvičení. Martin Němec A

Uživatelská rozhraní 10. cvičení. Martin Němec A Uživatelská rozhraní 10. cvičení Martin Němec A1047 +420 597 324 438 Úvod do Qt GUI toolkit Qt (cute) Samostatná knihovna společnosti TrollTech. Podpora platforem Windows, Linux, Mac. Vzhled i chování

Více

UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/

UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/ UJO Framework revoluční architektura beans verze 0.80 http://ujoframework.org/ Pavel Pone(c), září 2008 Historie rok 2004 upravené objekty z frameworku Cayenne nevýhodou byla špatná typová kontrola rok

Více

Android 100% Java telefon. Petr Musil

Android 100% Java telefon. Petr Musil Android 100% Java telefon Petr Musil 1 Vytvoření aplikace Prostředí pro vývoj Android SDK http://developer.android.com/sdk/index.html ADT plugin pro Eclipse http://developer.android.com/sdk/eclipse-adt.html

Více

3 KTE / ZPE Informační technologie

3 KTE / ZPE Informační technologie 3 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Komentáře

Více

KMI / TMA Tvorba mobilních aplikací

KMI / TMA Tvorba mobilních aplikací KMI / TMA Tvorba mobilních aplikací 2. seminář 5.10.2018 ZS 2017/2018 STŘEDA 13:15-15:45 OBSAH SEMINáře konfigurační soubory projektu, aktivity, základní události, životní cyklus aplikace, intenty a práce

Více

2 Tvorba interaktivních grafických programů

2 Tvorba interaktivních grafických programů 2 Tvorba interaktivních grafických programů Studijní cíl Tento blok je věnován vytváření interaktivních grafických programů. Podrobně bude vysvětleno, jakým způsobem je možno programově reagovat na události

Více

Nápověda k aplikaci EA Script Engine

Nápověda k aplikaci EA Script Engine Nápověda k aplikaci EA Script Engine Object Consulting s.r.o. 2006 Obsah Nápověda k aplikaci EA Script Engine...1 1. Co je EA Script Engine...2 2. Důležité upozornění pro uživatele aplikace EA Script Engine...3

Více

boolean hasnext() Object next() void remove() Kolekce

boolean hasnext() Object next() void remove() Kolekce 11. Kontejnery Kontejnery Kontejnery jako základní dynamické struktury v Javě Kolekce, iterátory (Collection, Iterator) Seznamy (rozhraní List, třídy ArrayList, LinkedList) Množiny (rozhraní Set, třída

Více

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance

Více

KMI / TMA Tvorba mobilních aplikací. 2. seminář ZS 2016/2017 Středa 13:15-15:45

KMI / TMA Tvorba mobilních aplikací. 2. seminář ZS 2016/2017 Středa 13:15-15:45 KMI / TMA Tvorba mobilních aplikací 2. seminář 5.10.2016 ZS 2016/2017 Středa 13:15-15:45 OBSAH SEMINáře konfigurační soubory projektu, aktivity, základní události, životní cyklus aplikace, intenty a práce

Více

OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha OSGi Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Více

Programovací jazyk Java

Programovací jazyk Java 1 z 8 Programovací jazyk Java Enumerace (výčty) Složitější definice výčtového typu Konstanty anonymních typů Výčtový typ a datové struktury Java packaging JAR archivy CLASSPATH Apache Ant 10. přednáška

Více

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo Statické proměnné a metody Tomáš Pitner, upravil Marek Šabo Úvod Se statickou metodou jsme se setkali už u úplně prvního programu - Hello, world! public class Demo { public static void main(string[] args)

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu

Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu Seminář Java Zavádění tříd Radek Kočí Fakulta informačních technologií VUT Duben 2008 Radek Kočí Seminář Java Zavádění tříd 1/ 16 JVM zavádí třídy dynamicky Class loader objekt schopný zavádět třídy abstraktní

Více

1. Dědičnost a polymorfismus

1. Dědičnost a polymorfismus 1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář

Více

IRAE 07/08 Přednáška č. 1

IRAE 07/08 Přednáška č. 1 Úvod do předmětu OOP Objekt Proč OOP? Literatura, osnova předmětu viz. cvičení Základní prvek OOP sw inženýrství = model reálných objektů (věcí) člověk, auto, okno (ve windows), slovník, = model abstraktní

Více

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek = Velmi malé jádro = implementuje jen vybrané základní mechanismy: = virtuální paměť; = plánování vláken; = obsluha výjimek; = zasílání

Více

Začínáme s vývojem pro Android

Začínáme s vývojem pro Android Pavel Petřek CTO Praha, 14. dubna 2010 Kdo je kdo Pavel Petřek Vývojář, přednášející, entusiasta světa chytrých telefonů (a velký jedlík) Spoluzakladatel Inmite Inmite Vývoj pro chytré telefony (Android:

Více

Z. Kotala, P. Toman: Java ( Obsah )

Z. Kotala, P. Toman: Java ( Obsah ) Z. Kotala, P. Toman: Java ( Obsah ) 13. Výjimky Výjimka (exception) je definována jako událost, která nastane během provádění programu a která naruší normální běh instrukcí. Výjimka je vyvolána například

Více

Komponenty v.net. Obsah přednášky

Komponenty v.net. Obsah přednášky doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah přednášky Rozdíl mezi COM a.net Distribuce komponent Programování

Více

Vývoj Internetových Aplikací

Vývoj Internetových Aplikací 7 Vývoj Internetových Aplikací HTML 5 a CSS 3 Ing. Michal Radecký, Ph.D. www.cs.vsb.cz/radecky https://developer.mozilla.org/en- US/docs/Web/Guide/HTML/HTML5 http://htmlfiverocks.appspot.com/en/resources

Více

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

1 - Úvod do platformy.net. IW5 - Programování v.net a C# 1 - Úvod do platformy.net IW5 - Programování v.net a C# Strana 1 Obsah přednášky Objektově orientované paradigma.net Framework Základní rysy jazyka C# Strana 2 Objektová orientace C# implementuje základní

Více

KMI / TMA Tvorba mobilních aplikací. 9. seminář ZS 2016/2017 Středa 13:15-15:45

KMI / TMA Tvorba mobilních aplikací. 9. seminář ZS 2016/2017 Středa 13:15-15:45 KMI / TMA Tvorba mobilních aplikací 9. seminář 22.11.2016 ZS 2016/2017 Středa 13:15-15:45 OBSAH SEMINáře Fragmenty a to, co se nevlezlo jinam Větší Displeje je třeba něco dělat? většina aplikací, které

Více

Abstract Factory úvod

Abstract Factory úvod Abstract Factory Abstract Factory úvod Problém potřebujeme vytvářet objekty ze skupiny souvisejících tříd skupin je více, chceme je snadno vyměňovat můžeme používat (v jednom kontextu) pouze jednu skupinu

Více

Příloha 6. Palety nástrojů

Příloha 6. Palety nástrojů Příloha 6. Palety nástrojů Palety nástrojů v IDE poskytují zkrácení pro příkazy nabídky. Příkazy jsou rozděleny do několika palet nástrojů, které mohou být nezávisle přeskupeny nebo vloženy do plovoucích

Více

Jazyk C# (seminář 6)

Jazyk C# (seminář 6) Jazyk C# (seminář 6) Pavel Procházka KMI 29. října 2014 Delegát motivace Delegáty a události Jak docílit v C# funkcionální práce s metodami v C je to pomocí pointerů na funkce. Proč to v C# nejde pomocí

Více

Embedded vývoj v Clutteru a Mx

Embedded vývoj v Clutteru a Mx Pavel Šimerda pavlix@pavlix.net OpenMobility 2011 Creative Commons Uved te autora 3.0 Česko Embedded Oblíbený buzzword Vestavěná zařízení (v automobilech, budovách, venkovních terminálech) Jednoúčelová

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní) Příklad aplikace Klient/Server s Boss/Worker modelem (informativní) Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze A0B36PR2 Programování 2 Jan Faigl, 2015 A0B36PR2

Více

Windows a real-time. Windows Embedded

Windows a real-time. Windows Embedded Windows a real-time Windows Embedded Windows pro Embedded zařízení Současnost (2008): Windows Embedded WINDOWS EMBEDDED Windows Embedded CE Windows XP Embedded Windows Embedded for Point of Service Minulé

Více

Obsah. O autorech 9 Earle Castledine 9 Myles Eftos 9 Max Wheeler 9 Odborný korektor 10. Předmluva 11 Komu je kniha určena 12 Co se v knize dočtete 12

Obsah. O autorech 9 Earle Castledine 9 Myles Eftos 9 Max Wheeler 9 Odborný korektor 10. Předmluva 11 Komu je kniha určena 12 Co se v knize dočtete 12 O autorech 9 Earle Castledine 9 Myles Eftos 9 Max Wheeler 9 Odborný korektor 10 Předmluva 11 Komu je kniha určena 12 Co se v knize dočtete 12 Poděkování 15 Earle Castledine 15 Myles Eftos 15 Max Wheeler

Více

1 2 3 4 5 6 součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů:

1 2 3 4 5 6 součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů: Úloha č.: max. bodů: skut. bodů: 1 2 3 4 5 6 součet cvičení celkem 20 12 20 20 14 14 100 známka UPOZORNĚNÍ : a) Písemná zkouška obsahuje 6 úloh, jejichž řešení musí být vepsáno do připraveného formuláře.

Více

1. Začínáme s FrontPage 2003 11

1. Začínáme s FrontPage 2003 11 Úvod 9 1. Začínáme s FrontPage 2003 11 Instalace programu 12 Spuštění a ukončení programu 15 Základní ovládání 16 Hledání souborů 30 Najít a nahradit 31 Tisk 32 Schránka sady Office 34 Nápověda 36 Varianty

Více

KMI / TMA Tvorba mobilních aplikací

KMI / TMA Tvorba mobilních aplikací KMI / TMA Tvorba mobilních aplikací 5. seminář 17.10.2018 ZS 2018/2019 STŘEDA 13:15-15:45 OBSAH SEMINáře BARVY, GRAFIKA, STYLY/TÉMATA, ŘETĚZCE, TOOLBAR MENU BARVY DRY = Dont Repeat Yourself v souboru /res/values/colors.xml

Více

Návrhové vzory pro GUI

Návrhové vzory pro GUI Návrhové vzory pro GUI RICHARD LIPKA 19. 3. 2018 Základní struktura GUI Vstup od uživatele Propojení s periferiemi Zpracování událostí Co se má stát po vstupu Spojení s jádrem programu Užitečná činnost

Více

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006 Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006 Lekce 1 Jazyk Java Tento projekt je spolufinancován Evropským sociálním fondem

Více

Obsah. Úvod 11 O autorovi 11 Koncept knihy 11 Zpětná vazba od čtenářů 12 Zdrojové kódy ke knize 12 Errata 12 ČÁST I VÝVOJ MOBILNÍ APLIKACE

Obsah. Úvod 11 O autorovi 11 Koncept knihy 11 Zpětná vazba od čtenářů 12 Zdrojové kódy ke knize 12 Errata 12 ČÁST I VÝVOJ MOBILNÍ APLIKACE Úvod 11 O autorovi 11 Koncept knihy 11 Zpětná vazba od čtenářů 12 Zdrojové kódy ke knize 12 Errata 12 ČÁST I VÝVOJ MOBILNÍ APLIKACE KAPITOLA 1 Vývojové prostředí a výběr frameworku 15 PhoneGap 15 jquery

Více

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox 02. HODINA Obsah: 1. Typy souborů a objektů 2. Ovládací prvky Label a TextBox 3. Základní příkazy a vlastnosti ovládacích prvků 4. Práce s objekty (ovládací prvky a jejich vlastnosti) 2.1 Typy souborů

Více

Závěrečná práce. AutoCAD Inventor 2010. (Zadání D1)

Závěrečná práce. AutoCAD Inventor 2010. (Zadání D1) Závěrečná práce AutoCAD Inventor 2010 (Zadání D1) Pavel Čurda 4.B 4.5. 2010 Úvod Tato práce obsahuje sestavu modelu, prezentaci a samotný výkres Pákového převodu na přiloženém CD. Pákový převod byl namalován

Více

RMI Remote Method Invocation

RMI Remote Method Invocation 2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient

Více

Obsah. Kapitola 1. Předmluva 11 O této knize 13 Konvence...13

Obsah. Kapitola 1. Předmluva 11 O této knize 13 Konvence...13 Obsah Předmluva 11 O této knize 13 Konvence........................................................13 Inovace prostřednictvím otevřenosti 15 Ekosystém Symbianu.............................................16

Více

Kód, který se nebude často měnit

Kód, který se nebude často měnit Factory Method Úvod - problém Mějme obchod s auty: public class OrderCars { public Car ordercar(string model) { Car car; Při přidání nového modelu je nutné upravit if(model.equals("mark IV")) car = new

Více

Úvodem... 9 Kapitola 1 Karetních

Úvodem... 9 Kapitola 1 Karetních Úvodem... 9 Základní znalosti o programovacích jazycích...10 Jazyk C# a platforma.net...10 Visual C# 2010 Express...11 Instalace platformy.net 4.0 a Visual C# 2010 Express...11 Zdrojový kód aplikací...12

Více

KOMPLEXNÍ VZDĚLÁVÁNÍ KATEDRA STROJNÍ SPŠSE a VOŠ LIBEREC

KOMPLEXNÍ VZDĚLÁVÁNÍ KATEDRA STROJNÍ SPŠSE a VOŠ LIBEREC KOMPLEXNÍ VZDĚLÁVÁNÍ KATEDRA STROJNÍ SPŠSE a VOŠ LIBEREC CNC CAM CNC frézování Heidenhain Kapitola 1 - Základy ISO kódu, kompenzace rádiusu frézy a struktura zápisu NC kódu. Kapitola 2 - Seznámení s prostředím

Více

NSWI096 - INTERNET JavaScript

NSWI096 - INTERNET JavaScript NSWI096 - INTERNET JavaScript Mgr. Petr Lasák JAVASCRIPT JAK SE DNES POUŽÍVÁ Skriptovací (interpretovaný) jazyk Umožňuje interaktivitu Použití: Dialogy Kontrola dat ve formulářích Změny v (X)HTML dokumentu

Více

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth Evropský sociální fond. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace Ing. Ondřej Guth Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 25. Otázka : Komponentní technologie - základní pojmy a principy, metody specifikace komponent. Obsah : 1. Základní pojmy 1.1 Komponenta Komponenta

Více

Události. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické

Události. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické Události A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické Zpracování událostí - obsah 1. Připomenutí GUI 2. Co to je událost 3. Koncepce zpracování událostí 4. Zpracování vlastností

Více

Nástroje na vývoj aplikací pro ios Trocha motivace na úvod Co budete potřebovat Co když nemáte k dispozici počítač s macos? Vývojové prostředí Xcode

Nástroje na vývoj aplikací pro ios Trocha motivace na úvod Co budete potřebovat Co když nemáte k dispozici počítač s macos? Vývojové prostředí Xcode KAPITOLA 1 Nástroje na vývoj aplikací pro ios 11 Trocha motivace na úvod 11 Co budete potřebovat 11 Co když nemáte k dispozici počítač s macos? 12 Vývojové prostředí Xcode 14 Průběžná aktualizace 16 První

Více

GUI. Systémová integrace pro desktopové aplikace

GUI. Systémová integrace pro desktopové aplikace GUI Systémová integrace pro desktopové aplikace 1 java.awt.desktop systémová integrace desktopových aplikací static boolean isdesktopsupported() test zda je integrace k dispozici static Desktop getdesktop()

Více

Java - výjimky. private void vstup() throws IOException {... }

Java - výjimky. private void vstup() throws IOException {... } Java - výjimky Tato kapitola ukazuje na několika příkladech práci s výjimkami v Javě. Klíčové pojmy: Výjimka, hierarchie výjimek, zachytávání výjimek, blok try-catch, tvorba vlastních výjimek, propagace

Více