Grafické uživatelské rozhraní GUI event-driven programming událostmi řízené programování

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Grafické uživatelské rozhraní GUI event-driven programming událostmi řízené programování"

Transkript

1 Grafické uživatelské rozhraní GUI event-driven programming událostmi řízené programování 1

2 Osnova 2 1. Vytváření oken základní balíčky 2. Třída Component 3. Komponenty atributy komponent 4. Swingové komponenty 5. Třída Container její podtřídy - použití 6. Správci rozvržení v kontejneru 7. Zpracování událostí 8. Model delegování událostí 9. Třída AWTEvent 10. Přehled swingových komponent 11. Zprávci rozvržení - příklady

3 1. Vytváření oken - základní balíčky 3 základní balíčky: java.awt, javax.swing swingové třídy novější, avšak závisí na awt třídách základní okno je v Javě představováno objektem třídy Window a balíčku java.awt JFrame je však mnohem užitečnější třídou

4 java.lang 4 java.awt definuje komponentu, která je zobrazitelným objektem (tlačítko, posuvná lišta) java.awt definuje komponentu, která může obsahovat komponenty java.awt definuje základní okno, bez lišty a rámečku java.awt definuje okno s lištou titulek a rámečkem javax.swing definuje rámeček s rozšířenými možnostmi

5 import javax.swing..swing.jframe JFrame; public class TestOkna // object Window static JFrame okno = new JFrame("Toto je nazev okna"); Osnova Jednoduchý příklad na vytvoření okna 5 } public static void main(string String[] args) int sirkaokna = 400; // sirka okna v pixelech int vyskaokna = 150; // vyska okna v pixelech okno.setbounds setbounds(50, 100, // nastaveni pozice sirkaokna, vyskaokna); // a velikosti okno.setdefaultcloseoperation setdefaultcloseoperation(jframe JFrame.EXIT_ON_CLOSE); okno.setvisible setvisible(true true); // zobrazi okno }

6 Metoda setdefaultcloseoperation() 6 Argument EXIT_ON_CLOSE Popis co nastane při uzavření okna Uzavření okna a uvolnění všech jeho zdrojů, ukončení aplikace. DISPOSE_ON_CLOSE Zrušení rámu a všech komponent, které obsahuje, ale neukončení aplikace. DO_NOTHING_ON_CLOSE HIDE_ON_CLOSE Operace uzavření je neúčinná. Okno se pouze skryje voláním metody setvisible(false). Možno později okno opět zobrazit s metodou setvisible(true).

7 2. Třída Component (Komponenta) 7 Komponenta je libovolný objekt třídy, která je potomkem třídy Component. Představuje grafický útvar, který může být zobrazen na obrazovce.

8 Třída Component a její podtřídy 8 Component Container Panel Window JComponent Applet Frame Dialog JApplet JFrame JDialog

9 Podtřídy třídy Component 9 Třída JFrame JDialog JApplet JComponent Popis Použití jako základní aplikační okno. Vlastní třída bývá podtřídou JFrame. Dají se přidat další GIU komponenty a také využít pro kreslení. Použití pro dialog s uživatelem. Základní třída pro applety programy běžící vnořené do webové stránky. Podtřídy této třídy definujířadu standardních komponent jako nabídky (menu), tlačítka, zaškrtávací políčka atd.

10 Okenní plochy 10 Okenní plochy jsou kontejnerové objekty, které představují oblast okna Existuje jich několik typů: JRootPane plocha pod titulkovací lištou, odpovídá objektu JFrame JLayeredPane řídí listu nabídek (menu) JInternalPane objektem této třídy je contentpane představující vlastní plochu okna metody: getrootpane(), getlayeredpane(), getcontentpane()

11 3. Komponenty - atributy komponent 11 atributy, které se dědí od tříd Component a Container Komponenta uvnitř jiné komponenty vnější objekt se nazývárodič metoda getparent() žádný rodič neexistuje metoda vrací null

12 Atributy komponent 12 Poloha (x, y) souřadnice, kde se objekt nachází v závislosti na svém kontainetovém objektu Jméno uloženo v objekty typu String Velikost šířka a výška objektu Barva popředí a pozadí barvy použity při zobrazení objektu Font použit při zobrazení textu Kurzor definuje vzhled kurzoru při práci s objektem Viditelnost objektu neviditelný objekt není vykreslen isvisible(), setvisible(true / false)

13 Atributy komponent - pokračování 13 Platnost objektu (validace) objekt není platný, nebylo li určeno uspořádání objektů, které ho tvoří. U neplatného objektu je změněn jeho obsah. Nejdříve se musí validovat. isvalid() Povolení objektu je-li komponenta povolena má stav true a má běžný vzhled. Je-li zakázána, je zastíněna šedou barvou, ale může vyvolat událost. isenabled(), setenabled(true / false)

14 Velikost a umístění komponenty 14 Metoda void setbounds(int x, int y, int sirka, int vyska) void setbounds(rectangle obdelnik) Rectangle getbounds() void setsize(dimension d) Dimension getsize() Popis Nastaví polohu (x, y) a velikost šířka, výška objektu typu Component Nastaví polohu a velikost objektu typu Component na hodnoty Rectangle(x, y, s, v) x, y - poloha, s, v - velikost Vrací polohu a velikost objektu typu Component Dimension(width, height) šířka a výška nastaví velikost na udané hodnoty Vrací aktuální velikost typu Component

15 Velikost a umístění komponenty 15 Metoda void setlocation(int x, int y) void setlocation(point p) Point getlocation() Popis Nastaví polohu komponenty na souřadnice definované v argumentech metody Nastaví polohu komponenty na souřadnice bodu p Vrací polohu objektu typu Component jako objekt typu bod point.

16 import javax.swing..swing.jframe JFrame; import java.awt awt.toolkit Toolkit; import java.awt awt.dimension Dimension; public class TestOkno1 // object awindow static JFrame awindow = new JFrame("T ("Toto je moje okno"); Osnova 16 Objektem třídy Toolkit můžeme měnit velikost a polohu okna na obrazovce } public static void main(string String[] args) Toolkit thekit = awindow.gettoolkit gettoolkit(); // ziska sadu nastroju // ziska velikost obrazovky Dimension wndsize = thekit.getscreensize getscreensize(); // Set the position to screen center & size to half screen size awindow.setbounds setbounds(wndsize wndsize.width width/4, wndsize.height height/4, // Pozice wndsize.width width/2, wndsize.height height/2); // Velikost awindow.setdefaultcloseoperation setdefaultcloseoperation(jframe JFrame.EXIT_ON_CLOSE); // Zobrazi okno awindow.setvisible setvisible(true true); }

17 Vizuální vlastnosti komponenty 17 vzhled komponenty je daný: reprezentací komponenty vytvořenou kódem ve třídě komponenty, který se provede při zobrazení komponenty tím co na komponentu nakreslíme na komponentu můžeme nakreslit pomocí její metody paint() je volána automaticky při vykreslení komponenty nutné pouze zastínit (override) znovu deklarovat metodu paint()

18 Metody pro vizualizaci komponenty 18 Metoda void setbackground (Color barva) Color getbackground() Popis Nastaví barvu pozadí nabarva. Vrátí aktuální barvu pozadí. void setforeground(color barva) Color getforeground() Nastaví barvu popředí na barva. Barva popředí popisy, texty. Vrátí aktuální barvu popředí. void setcursor(cursor kurzor) void setfont(font font) Nastaví komponentu kurzor na daný tvar. Nastaví font písma na font. Font getfont() Vrací aktuální font písma.

19 Základní barvy 19 Barva obrazovky objekt třídy Color kombinace červené, zelené a modré RGB Standardní barevné konstanty: WHITE, LIGHT_GRAY, GRAY, DARK_GRAY, BLACK, RED, ORANGE, YELLOW, GREEN, PINK, MANGETA, CYAN, BLUE tatobarva.brighter(); tatobarba.darker();

20 import javax.swing..swing.jframe JFrame; import java.awt awt.toolkit Toolkit; import java.awt awt.dimension Dimension; import java.awt awt.color Color; import java.awt awt.cursor Cursor; Osnova 20 public class TestOkno2 // object okno static JFrame okno = new JFrame("Toto je moje okno"); public static void main(string String[] args) Toolkit thekit = okno.gettoolkit gettoolkit(); // Get the window toolkit Dimension wndsize = thekit.getscreensize getscreensize(); // Get screen size } } // Set the position to screen center & size to half screen size okno.setbounds setbounds(wndsize wndsize.width width/4, wndsize.height height/4, // Position wndsize.width width/2, wndsize.height height/2); // Size okno.setdefaultcloseoperation setdefaultcloseoperation(jframe JFrame.EXIT_ON_CLOSE); okno.setcursor setcursor(cursor Cursor.getPredefinedCursor getpredefinedcursor(cursor Cursor.CROSSHAIR_CURSOR)); okno.getcontentpane getcontentpane(). ().setbackground setbackground(color Color.PINK); okno.setvisible setvisible(true true); // Display the window

21 4. Swingové komponenty 21 mají základ ve třídě JComponent, která vznikla ze třídy Component přidáním následujících možností: podpora pro zapojitelný vzhled (pluggable look and feel), který umožňuje uzpůsobit (customize) komponenty potřebám uživatele, podporu pro bublinkovou nápovědu, podporu pro urychlující klávesy (shortcut keys), snadné rozšíření tříd pro vytváření vlastních komponent. JComponent podporuje navíc lehké procesy (lightweight)

22 Tlačítka 22 JButton klasické tlačítko JCheckBox zaškrtávací tlačítka JRadioButton radiová tlačítka použito pouze jedno

23 Nabídky - menu 23 Objekt typu JMenuBar definuje nabídkovou lištu nahoře Objekt typu JMenu představuje nabídkovou položku první úrovně, která se po kliknutí rozvine do seznamu nabídkových položek Třída PopupMenu definuje kontextovou nabídku, která se objeví po kliknutí pravého tlačítka myši

24 Textové komponenty 24 Komponenta JLabel pasivní, nereaguje na vstup události, nedá se editovat JTextField podobně jako JLabel (řádek textu) ale editovatelná JFormatedTextField podobně jako JTextField, ale umožňuje formátování např. datum JTextArea umožňuje editování víceřádkového textu (automatické posuvníky) JEditorPane podporuje editování prostého textu JTextPane navíc vkládání obrázků a jiných komponent

25 Ostatní swingové komponenty 25 Třída JPanel definuje něco jako fyzický panel, použitý pro seskupení sady komponent např. dvou oddělených skupin typu JButton Třída JList realizuje seznam položek, ze kterého se dá vybírat Třída JTable realizuje tabulku položek, ze kterých se dá vybírat řádek, nebo sloupec nebo jedna položka. Komponenta provádí automaticky změnu pořadí sloupců při přetažení myší.

26 5. Třída Container, její podtřídy použití 26 Kontejner je jakákoli komponenta, která je podtřídou třídy Container (abstraktní třída). Vlastnost: možnost obsahovat jiné komponenty Kontejner nemůže obsahovat objekt třídy Window, pouze objekty podtříd třídy Container. Dialogové okno může např. obsahovat objekt typu JList a objekty typu JCheckbox a JButton. Na rozmístění vnitřních komponent se používá správce rozmístění (Layout Manager).

27 Základní metody definované ve třídě Container 27 Metoda int getcomponentcount() Component getcomponent(int index) Component[] getcomponents() Popis Vrací počet komponent obsažených v aktuální komponentě. Vrací komponentu určenou indexem od 0 do n-1, jinak výjimka ArrayIndexOutOfBoundsException Vrací pole všech komponent v aktuálním kontejneru

28 Přidávání komponent do kontejneru 28 Přidání komponenty do kontejneru neodstraní žádnou z již přítomných komponent. Ty se posunou v případě přidání komponenty na konkrétní místo určené indexem. Jedna komponenta může být jen v jednom kontejneru. Přidá-li se komponenta z jednoho kontejneru do jiného, je v původním kontejneru odstraněna.

29 Přidávání komponent do kontejneru 29 Metoda Component add ( Component c) Component add ( Component c, int index) void add(component c, Object omezeni) void add(component c, Object omezeni, int index) Popis Přidá komponentu c na konec seznamu komponent uložených v kontejneru. Vrácená je komponenta c. Přidá komponentu c na pozici indexu. Je-li index -1, přidá komponentu na konec seznamu. Vrácená hodnota je c. Přidá komponentu c na konec seznamu komponent uložených v kontejneru. Také informuje správce rozvržení, aby přidal komponentu do rozvržení s použitím argumentu omezení. Přidá komponentu c do seznamu komponent v kontejneru do pozice určené indexem a polohy určené omezením.

30 6. Správce rozvržení v kontejneru Layout Manager 30 Správce rozvržení určuje způsob, jakým jsou komponenty v kontejneru uspořádány. Všechny kontejnery mají implicitní správce rozvržení možnost ale zvolit i jiné správce rozvržení.

31 Správce rozvržení 31 Správce rozmístění FlowLayout BorderLayout CardLayout GridLayout Popis Umisťuje komponenty v po sobě jdoucích řádcích v kontejneru podobně jako textový editor, na konci přejde na nový řádek. Implicitní pro JPanel (vhodný pro JButton) Umisťuje komponenty do 5 oblastí: sever, jih, východ, západ a střed. Implicitní pro: JFrame, JDialog a JApplet Umisťuje komponenty v kontejneru jednu na druhou, jako v balíčku karet. Viditelná je pouze ta nahoře. Rozmisťuje komponenty v kontejneru do obdelníkové mřížky s vámi zadaným počtem řádků a sloupců.

32 Správce rozvržení 32 Správce rozmístění GridBagLayout BoxLayout SpringLayout Popis Rozvržení komponent do řádků a sloupců s různou délkou. Správce poskytuje značnou flexibilitu co se týče místa v němž jsou komponenty v kontejneru rozmístěny. Rozvržení komponent do řádku nebo do sloupce. Komponenty jsou, je-li to nutné oříznuty, a ne přemístěny do dalšího řádku nebo sloupce. Správce implicitní pro kontejnerovou třídu Box. Umožňuje zadání polohy komponenty pomocí pružin (springs) připevněných k hraně kontejneru nebo k další komponentě v kontejneru.

33 Správce rozvržení v kontejneru 33 TřidyBoxLayout, SpringLayout a Box jsou definovány v balíčku java.swing, ostatní třídy jsou definovány v balíčku java.awt. Správci automaticky upravují komponenty tak, aby zapadly do dostupného prostoru. Při pevné velikosti a poloze všech komponent může dojít k jejich překrývání nebo vytlačování při zmenšení plochy obrazovky.

34 Správce rozvržení v kontejneru 34 změna správce rozvržení: FlowLayout tok = new FlowLayout(); okno.getcontentpane().setlayout(tok);

35 import javax.swing..swing.jframe JFrame; import javax.swing..swing.jbutton JButton; Osnova 35 import java.awt awt.toolkit Toolkit; import java.awt awt.dimension Dimension; import java.awt awt.container Container; import java.awt awt.flowlayout FlowLayout; public class TryFlowLayout // The window object static JFrame awindow = new JFrame(" ("This is the Window Title"); public static void main(string String[] args) Toolkit thekit = awindow.gettoolkit gettoolkit(); // Get the window toolkit Dimension wndsize = thekit.getscreensize getscreensize(); // Get screen size // Set the position to screen center & size to half screen size awindow.setbounds setbounds(wndsize wndsize.width width/4, wndsize.height height/4, // Position wndsize.width width/2, wndsize.height height/2); // Size awindow.setdefaultcloseoperation setdefaultcloseoperation(jframe JFrame.EXIT_ON_CLOSE); FlowLayout flow = new FlowLayout(); // Create a layout manager //FlowLayout flow = new FlowLayout(FlowLayout FlowLayout.LEFT); //FlowLayout flow = new FlowLayout(FlowLayout FlowLayout.LEFT, 20, 30);

36 Container content = awindow.getcontentpane getcontentpane(); // Get the content pane content.setlayout setlayout(flow flow); // Set the container layout mgr Osnova 36 // Pridani sesti tlacitkovych komponent for(int i = 1; i <= 6; i++) content.add add(new JButton(" ("Press " + i)); // Add a Button to content // pane } } awindow.pack pack(); awindow.setvisible setvisible(true true); // Display the window

37 7. Zpracování událostí (events) 37 Příklad knihovna: chci knihu, která je půjčena 1. chodím se dotazovat, zde není k dispozici (dotazování polling) 2. použití vzoru Observer (Publisher/Subscriber vydavatel/odběratel), který informuje o změnách v dostupnosti konkrétně daných knih Model pozorovatele je efektivnější a zprávu o vzniklé situaci poskytne prakticky okamžitě. Z toho principu je odvozen model událostmi řízeného programování

38 Zpracování událostí (events) 38 konzolové programy a programy využívající okna u konzolového programu jeho kód rozhoduje o pořadí událostí vše je dopředu určeno chod programu využívajícího okna je určen tím, co uživatel udělá v grafickém rozhraní výběr položek menu, tlačítek způsobí odpovídající akce programu (event-driven-programming)

39 Událostmi řízené programy 39 Moderní systémy s okny využívají model událostmi řízeného programování. V tomto modelu má aplikace typicky prostředky GUI (kliknutí na tlačítko, výběr položky z menu atd.) k interakci s uživatelem. Uživatelem vytvářené (generované) akce vytváří (generují) události. Při každé takové události se vytvoří objekt události (event object). Systém ukládá tyto události do fronty a pak je zasílá speciálním metodám nazývanými ovladače událostí. Argumentem uvedené metody je objekt události.

40 Událostmi řízené programy 40 Metoda ovladače události (event handler) je tzv. call back metoda což znamená, že tuto metodu vytvoří programátor, ale je volaná systémem (odtud volání zpět call back). Mnoho z událostí je vytvořeno uživatelem, ale jiné události mohou být vytvořeny také systémem.

41 Událostmi řízené programy 41 Procesu zpracování událostí se říká událostní smyčka (event loop). V této smyčce pracuje systém a očekává události. Pokud nějaké nastanou, tak je zpracuje a opět čeká ve smyčce na další události na podobném principu např. pracuje operační systém UNIX. Fragment kódu této smyčky může být:

42 while ( theapp.isrunning isrunning() ) Event e = nextevent(); // získ z ská novou událost z fronty událost lostí int id = e.getid getid(); switch( id ) case Event_MouseClick MouseClick; theapp.handlemouseclick handlemouseclick(); break; case Event_Mouse Mouse_Move Move; theapp.handlemousemove handlemousemove(); break; case Event_ButtonPush ButtonPush; theapp.handlebuttonpush handlebuttonpush(); break; case Event_KeyPush KeyPush; theapp.handlekeypush handlekeypush(); break; //... další události default: ignoreevent(e); break; } } Osnova 42 Po spuštění aplikace se tato v tzv. inicializační fázi. Po skončení této fáze se aplikace dostává do smyčky, ve které čeká na událost (event loop).

43 Model delegování událostí 43 Hlavníčásti tohoto modelu jsou: Zdroj události (event source) Posluchač události (event listener) Objekt události (event object) Zdroj události (event source) je objekt jako např. tlačítko, posuvník, který může generovat události. Zdroj události má metodu, která dovoluje jiným objektům, aby byly registrováni jako posluchači. To znamená jako objekty, které jsou uvědoměny, když nastala událost, kterou sledují (poslouchají).

44 Model delegování událostí 44 Např. metoda addactionlistener() je metoda, která se používá k registraci posluchačů, kteří sledují kliknutí na tlačítko. Posluchač události (event listener) je objekt (Observer), který sleduje, zda-li nenastala událost. Když zdroj události vytvoří (generuje) událost, registrovaní posluchači jsou o tom uvědoměni, když systém vyvolává odpovídající call-back metodu zapouzdřenou v posluchači.

45 Model delegování událostí 45 Např. již zmíněný posluchač události pro kliknití na tlačítko by implementoval odpovídající callback metodu, v tomto případě callback metodu actionperformed() deklarovanou v rozhraní ActionListener. Když uživatel klikne na tlačítko, metoda actionperformed() posluchače je volána, aby zpracovala tuto událost.

46 Model delegování událostí 46 Objekt události (event object) je objekt, který je předán jako argument call-back metodě posluchače. Např. již zmíněná metoda actionperformed() má následující notaci: public void actionperformed( ActionEvent e ); Tato metoda využívá argument e typu ActionEvent k získání dalších informací týkající se události, tedy identifikace objektu, který událost způsobil.

47 Model delegování událostí 47 Model delegování událostí je pružný a dovoluje, aby libovolný objekt byl registrovaný jako posluchač pro různé typy událostí. Zdroje událostí takto delegují zpracování generované (vytvořené) události na odpovídající call-back metodu, která je uvedena (zapouzdřena) uvnitř posluchače. Objekt vedený jako posluchač musí implementovat odpovídající rozhraní posluchače.

48 Model delegování událostí 48 V následující tabulce je uveden seznam typů událostí v balíčku java.awt.event spolu s korespondujícími posluchači (jejich rozhraními) a callback metodami deklarovanými v odpovídajících rozhraních.

49 Událost, posluchač, metoda zpětného volání 49 Třída události (Event class) Rozhraní posluchače (Listener interface) Metoda callback (Listener callback) ActionEvent ActionListener actionperformed() AdjustmentEvent AdjustmentListener adjustmentvaluechanged() ComponentEvent ComponentListener componenthidden() componentmoved() componentresized() componetshown() ContainerEvent ContainerListener componentadded() componentremoved() FocusEvent FocusListener focusgained() focuslost() ItemEvent ItemListener itemstatechanged() MouseEvent MouseListener mouseclicled() mouseentered() mousepressed() mousereleased() MouseMotionListener mousedrag() mousemoved() TextEvent TextListener textvaluechanged() WindowEvent WindowListener windowactivated() windowclosed() windowclosing() windowdeactivated() windowdeiconified() windowicinified() windowopened()

50 import java.awt awt.flowlayout FlowLayout; import java.awt awt.event event.actionlistener ActionListener; import java.awt awt.event event.actionevent ActionEvent; import javax.swing..swing.jframe JFrame; import javax.swing..swing.jbutton JButton; import javax.swing..swing.joptionpane JOptionPane; Osnova 50 public class ButtonFrame extends JFrame private JButton tlacitkostart; // tlacitko s textem private JButton tlacitkostop; // ButtonFrame prida JButtons do JFrame public ButtonFrame() super( "Testování tlačítek" tek" ); setlayout( new FlowLayout() ); // nastaveni spravce rozvrzeni tlacitkostart = new JButton( "Start" ); add( tlacitkostart ); // prida tlacitkostart do kontejneru JFrame tlacitkostop = new JButton( "Stop"); add( tlacitkostop ); // vytvoreni noveho ovladace ButtonHandler pro zpracovani udalosti // tlacitek ButtonHandler handler = new ButtonHandler(); ();//d //dále deklarovaná třída tlacitkostop.addactionlistener addactionlistener( handler ); tlacitkostart.addactionlistener addactionlistener( handler ); } // konec ButtonFrame konstruktoru

51 // vnitrni trida pro zpracovani udalosti tlacitek // ButtonHandler naslouchací objekt tlačítka tka private class ButtonHandler implements ActionListener // zpracuje udalost tlacitka public void actionperformed( ActionEvent udalost ) JOptionPane.showMessageDialog showmessagedialog( ButtonFrame.this this, String.format format( "Stiskli jste: %s", udalost.getactioncommand getactioncommand() ) ); } // konec metody actionperformed } // konec soukrome vnitrni tridy ButtonHandler } // konec tridy ButtonFrame Osnova 51

52 import javax.swing..swing.jframe JFrame; Osnova 52 public class ButtonTest public static void main( String args[] ) ButtonFrame buttonframe = new ButtonFrame(); // vytvoreni instance buttonframe.setdefaultcloseoperation setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); buttonframe.setsize setsize( 275, 110 ); // nastaveni velikost okna buttonframe.setvisible setvisible( true ); // zobrazeni okna } }

53 Třídy událostí 53 Nízkoúrovňové události: události vycházející z klávesnice, myši a události spojené s provozem okna minimalizace, uzavření. Význam událostí: myš byla přesunuta, okno bylo zavřeno, klávesa byla stlačena Sémantické události: specifické události spojené s komponentou jako: stisk tlačítka k nastartování nějaké programové akce, posunutí posuvníku Význam událostí: tlačítko OK stlačeno, položka menu vybrána

54 Třídy pro nízkoúrovňové události balíček java.awt.event 54 Událost FocusEvent Popis Objekty třídy představují události, které vznikají, když komponenta získá / ztratí fokus. MouseEvent Objekty třídy představují události, které jsou výsledkem akcí uživatele s myší pohyb, stisknutí tlačítka. KeyEvent Objekty třídy představují události, které vznikají stisknutím tlačítka klávesnice. WindowEvent Objekty třídy představují události, které se vztahují k oknu zmenšení, zavření okna.

55 9. Třída AWTEvent 55 je podtřídou třídy java.util.eventobject třída EventObject implementuje rozhrani Serializable, tedy všechny objekty tříd událostí jsou serializovatelné definuje metodu getsource(), která vrací objekt, který je zdrojem události jako odkaz na typ Object všechny třídy událostí dědí tuto metodu

56 Třída AWTEvent 56 Třída AWTEvent definuje konstanty, které představují různé události. Konstanty mají identifikátory tvořené jménem události za tím následuje _MASK Každá z konstant je hodnotou typu long s jedním nastaveným bitem (ostatní bity 0) umožňuje kombinaci událostí s logickými operátory or, and Např. MOUSE_EVENT_MASK, WINDOW_FOCUS_EVENT_MASK

57 Třída AWTEvent 57 Identifikátory událostí se používají k povolení určité skupiny události v objektu komponenty to se provede zavoláním metody enableevents() a předáním proměnné pro událost, která má být povolena dělá se pouze, když se nepoužívá přijímač (Listener). Zaregistrováním přijímače se automaticky povolí události, které je přijímač schopen slyšet.

58 Sémantické události 58 týkají se operací s komponentami GUI programu aplikace např. výběr položky z nabídky, nebo kliknutím na tlačítko tří třídy představují základní sémantické události jsou podtřídami od AWTEvent třídy EventObject AWTEvent ActionEvent ItemEvent AdjustmentEvent

59 Sémantické události 59 Typ události ActionEvent ItemEvent AdjustmentEvent Generované objekty typu Tlačítka: JButton, JToggleButton, JCheckBox Nabídky: JMenuItem, JMenu, JCheckBoxMenuItem, JRadioButtonMenuItem Text: JTextField Tlačítka: JButton, JToggleButton, JCheckBox Nabídky: JMenuItem, JMenu, JCheckBoxMenuItem, JRadioButtonMenuItem JScrollbar

60 Zpracování sémantických událostí pomocí posluchačů - Listeners 60 Každé z naslouchacích rozhraní definuje pouze jednu metodu, není třeba vytvářet odpovídající adaptery Naslouchací rozhraní ActionListener ItemListener AdjustmentListener Metoda void actionperformed(actionevent e) void itemstatechanged(itemevent c) void adjustmentvaluechanged(adjustmentevent e)

61 Třída událostí ActionEvent rozhraní ActionListener 61 Instance třídy ActionEvent je zaslána všem registrovaným posluchačům po každé aktivaci tlačítka Metoda getactioncommand() vrací příkazový řetězec co bývá popisek přiřazený k tlačítku, který událost generuje RozhraníActionListener definuje jen metodu actionperformed()

62 Jednoduchý čítač 62 část model část view a controller aplikace

63 public class Counter Osnova 63 } private int cnt = 0; public void incr() cnt++; } public void decr() cnt cnt-- --; } public void clr() cnt = 0; } public int getcnt() return cnt; }

64 import java.awt awt.flowlayout FlowLayout; import java.awt awt.event event.actionlistener ActionListener; import java.awt awt.event event.actionevent ActionEvent; import javax.swing..swing.jframe JFrame; import javax.swing..swing.jtextfield JTextField; import javax.swing..swing.jlabel JLabel; import javax.swing..swing.jbutton JButton; Osnova 64 public class CounterFrame extends JFrame private Counter c = new Counter(); private JButton increment, decrement, clear; private JTextField field; private JLabel label; public CounterFrame() super("jenoduchý číta tač"); setlayout(new FlowLayout()); label = new JLabel("Stav číta tače: "); add(label label); field = new JTextField(6); field.seteditable seteditable(false false); field.sethorizontalalignment sethorizontalalignment(jtextfield JTextField.RIGHT); add(field field); field.settext settext(string String.valueOf valueof(c. (c.getcnt getcnt())); increment = new JButton(" ("Increment Increment"); add(increment increment); decrement = new JButton(" ("Decrement Decrement"); add(decrement decrement); clear = new JButton(" ("Clear Clear"); add(clear clear);

65 ButtonHandler handler = new ButtonHandler(); increment.addactionlistener addactionlistener(handler handler); decrement.addactionlistener addactionlistener(handler handler); clear.addactionlistener addactionlistener(handler handler); } private class ButtonHandler implements ActionListener public void actionperformed(actionevent event) if(event event.getsource getsource()== ()==increment increment) c.incr incr(); field.settext settext(string String.valueOf valueof(c. (c.getcnt getcnt())); } else if(event event.getsource getsource()== ()==decrement decrement) c.decr decr(); field.settext settext(string String.valueOf valueof(c. (c.getcnt getcnt())); } else if(event event.getsource getsource()== ()==clear clear) c.clr clr(); field.settext settext(string String.valueOf valueof(c. (c.getcnt getcnt())); } } } Osnova 65 }

66 import javax.swing..swing.jframe JFrame; public class CounterFrameTest Osnova 66 } public static void main(string args[]) CounterFrame counterframe= new CounterFrame(); counterframe.setdefaultcloseoperation (JFrame JFrame.EXIT_ON_CLOSE); counterframe.setsize setsize(400, 200); counterframe.setvisible setvisible(true true); }

67 10. Přehled Swingových komponent 67 Komponenta JLabel JTextField JButton JCheckBox JComboBox JList JPanel Popis Zobrazuje needitovatelný text, nebo ikony Umožňuje uživateli vstup dat z klávesnice. Je možné také použít pro zobrazení editovatelných a needitovatelných textů. Spouští událost kliknutím myši na tlačítko. Specifikuje volby Poskytuje drop-down seznam položek pro výběr nebo doplnění. Poskytuje seznam položek pro jedno i vícenásobný výběr. Poskytuje oblast pro umístění a další zpracování komponent.

68 Text Fields a úvod do zpracování událostí s vnořenými třídami 68 JTextField Jednořádková oblast do které může uživatel zadat text JPasswordField je podtřídou JTextField ukrývá znaky, které zadává uživatel (zobrazuje *)

69 // Demonstrating the JTextField class. import java.awt awt.flowlayout FlowLayout; import java.awt awt.event event.actionlistener ActionListener; import java.awt awt.event event.actionevent ActionEvent; import javax.swing..swing.jframe JFrame; import javax.swing..swing.jtextfield JTextField; import javax.swing..swing.jpasswordfield JPasswordField; import javax.swing..swing.joptionpane JOptionPane; Osnova 69 public class TextFieldFrame extends JFrame private JTextField textfield1; // text field with set size private JTextField textfield2; // text field constructed with text private JTextField textfield3; // text field with text and size private JPasswordField passwordfield; // password field with text // TextFieldFrame constructor adds JTextFields to JFrame public TextFieldFrame() super( "Testing " JTextField and JPasswordField" ); setlayout( new FlowLayout() ); // set frame layout // construct textfield with 10 columns textfield1 = new JTextField( 10 ); add( textfield1 ); // add textfield1 to JFrame // construct textfield with default text textfield2 = new JTextField( "Enter" text here" ); add( textfield2 ); // add textfield2 to JFrame

70 // construct textfield with default text and 21 columns textfield3 = new JTextField( "Uneditable" text field", 21 ); textfield3.seteditable seteditable( false ); // disable editing add( textfield3 ); // add textfield3 to JFrame Osnova 70 // construct passwordfield with default text passwordfield = new JPasswordField( "Hidden" text" ); add( passwordfield ); // add passwordfield to JFrame // register event handlers TextFieldHandler handler = new TextFieldHandler(); textfield1.addactionlistener addactionlistener( handler ); textfield2.addactionlistener addactionlistener( handler ); textfield3.addactionlistener addactionlistener( handler ); passwordfield.addactionlistener addactionlistener( handler ); } // end TextFieldFrame constructor // private inner class for event handling private class TextFieldHandler implements ActionListener // process textfield events public void actionperformed( ActionEvent event ) String string = ""; // declare string to display // user pressed Enter in JTextField textfield1 if ( event.getsource getsource() == textfield1 ) string = String.format format( "textfield1: %s", event.getactioncommand getactioncommand() );

71 // user pressed Enter in JTextField textfield2 else if ( event.getsource getsource() == textfield2 ) string = String.format format( "textfield2: %s", event.getactioncommand getactioncommand() ); Osnova 71 // user pressed Enter in JTextField textfield3 else if ( event.getsource getsource() == textfield3 ) string = String.format format( "textfield3: %s", event.getactioncommand getactioncommand() ); // user pressed Enter in JTextField passwordfield else if ( event.getsource getsource() == passwordfield ) string = String.format format( "passwordfield" passwordfield: %s", new String( passwordfield.getpassword getpassword() ) ); // display JTextField content JOptionPane.showMessageDialog showmessagedialog( null, string ); } // end method actionperformed } // end private inner class TextFieldHandler } // end class TextFieldFrame

72 // Testing TextFieldFrame. import javax.swing..swing.jframe JFrame; Osnova 72 public class TextFieldTest public static void main( String args[] ) TextFieldFrame textfieldframe = new TextFieldFrame(); textfieldframe.setdefaultcloseoperation setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); textfieldframe.setsize setsize( 325, 100 ); // set frame size textfieldframe.setvisible setvisible( true ); // display frame } // end main } // end class TextFieldTest

73 Výstupy aplikace 73

74 Výstupy aplikace 74

75 75 Některé běžné rozhraní event-listener balíčku java.awt.event interface EventListener interface ActionListener interface AdjustmentListener interface ComponentListener interface ContainerListener interface FocusListener interface ItemListener interface KeyListener interface MouseListener interface MouseMotionListener interface TextListener interface WindowListener «interface» EventListener «interface» ActionListener «interface» AdjustmentListener «interface» ComponentListener «interface» ContainerListener «interface» FocusListener «interface» ItemListener «interface» KeyListener «interface» MouseListener «interface» MouseMotionListener «interface» TextListener «interface» TextListener

76 JList 76 Seznam (List) Řada položek uživatel může vybrat jednu nebo více pložek Single-selection vs. multiple-selection JList

77 // Selecting colors from a JList. import java.awt awt.flowlayout FlowLayout; import java.awt awt.color Color; import javax.swing..swing.jframe JFrame; import javax.swing..swing.jlist JList; import javax.swing..swing.jscrollpane JScrollPane; import javax.swing..swing.event event.listselectionlistener ListSelectionListener; import javax.swing..swing.event event.listselectionevent ListSelectionEvent; import javax.swing..swing.listselectionmodel ListSelectionModel; Osnova 77 public class ListFrame extends JFrame private JList colorjlist; // list to display colors private final String colornames[] = "Black" Black", "Blue" Blue", "Cyan" Cyan", "Dark Gray", "Gray" Gray", "Green" Green", "Light" Gray", "Magenta" Magenta", "Orange Orange", "Pink", "Red" Red", "White" White", "Yellow" Yellow" }; private final Color colors[] = Color.BLACK, Color.BLUE, Color.CYAN, Color.DARK_GRAY, Color.GRAY, Color.GREEN, Color.LIGHT_GRAY, Color.MAGENTA, Color.ORANGE, Color.PINK, Color.RED, Color.WHITE, Color.YELLOW }; // ListFrame constructor add JScrollPane containing JList to JFrame public ListFrame() super( "List Test" ); setlayout( new FlowLayout() ); // set frame layout colorjlist = new JList( colornames ); // create with colornames colorjlist.setvisiblerowcount setvisiblerowcount( 5 ); // display five rows at once

78 // do not allow multiple selections colorjlist.setselectionmode setselectionmode( ListSelectionModel.SINGLE_SELECTION ); Osnova 78 // add a JScrollPane containing JList to frame add( new JScrollPane( colorjlist ) ); colorjlist.addlistselectionlistener addlistselectionlistener( new ListSelectionListener() // anonymous inner class // handle list selection events public void valuechanged( ListSelectionEvent event ) getcontentpane(). ().setbackground setbackground( colors[ colorjlist.getselectedindex getselectedindex() ] ); } // end method valuechanged } // end anonymous inner class ); // end call to addlistselectionlistener } // end ListFrame constructor } // end class ListFrame

79 // Selecting colors from a JList. import javax.swing..swing.jframe JFrame; public class ListTest public static void main( String args[] ) ListFrame listframe = new ListFrame(); // create ListFrame listframe.setdefaultcloseoperation setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); listframe.setsize setsize( 350, 150 ); // set frame size listframe.setvisible setvisible( true ); // display frame } // end main } // end class ListTest Aplikace Osnova 79

80 Výstupy aplikace 80

81 Multiple-Selection Lists 81 Multiple-selection list Select many items from Jlist Allows continuous range selection

82 // Copying items from one List to another. import java.awt awt.flowlayout FlowLayout; import java.awt awt.event event.actionlistener ActionListener; import java.awt awt.event event.actionevent ActionEvent; import javax.swing..swing.jframe JFrame; import javax.swing..swing.jlist JList; import javax.swing..swing.jbutton JButton; import javax.swing..swing.jscrollpane JScrollPane; import javax.swing..swing.listselectionmodel ListSelectionModel; Osnova 82 public class MultipleSelectionFrame extends JFrame private JList colorjlist; // list to hold color names private JList copyjlist; // list to copy color names into private JButton copyjbutton; // button to copy selected names private final String colornames[] = "Black" Black", "Blue" Blue", "Cyan" Cyan", "Dark Gray", "Gray" Gray", "Green" Green", "Light" Gray", "Magenta" Magenta", "Orange" Orange", "Pink", "Red " Red", "White" White", "Yellow" Yellow" }; // MultipleSelectionFrame constructor public MultipleSelectionFrame() super( "Multiple " Selection Lists" ); setlayout( new FlowLayout() ); // set frame layout colorjlist = new JList( colornames ); // holds names of all colors colorjlist.setvisiblerowcount setvisiblerowcount( 5 ); // show five rows colorjlist.setselectionmode setselectionmode( ListSelectionModel.MULTIPLE_INTERVAL_SELECTION ); add( new JScrollPane( colorjlist ) ); // add list with scrollpane

83 copyjbutton = new JButton( "Copy >>>" ); // create copy button copyjbutton.addactionlistener addactionlistener( Osnova 83 new ActionListener() // anonymous inner class // handle button event public void actionperformed( ActionEvent event ) // place selected values in copyjlist copyjlist.setlistdata setlistdata( colorjlist.getselectedvalues getselectedvalues() ); } // end method actionperformed } // end anonymous inner class ); // end call to addactionlistener add( copyjbutton ); // add copy button to JFrame copyjlist = new JList(); // create list to hold copied color names copyjlist.setvisiblerowcount setvisiblerowcount( 5 ); // show 5 rows copyjlist.setfixedcellwidth setfixedcellwidth( 100 ); // set width copyjlist.setfixedcellheight setfixedcellheight( 15 ); // set height copyjlist.setselectionmode setselectionmode( ListSelectionModel.SINGLE_INTERVAL_SELECTION ); add( new JScrollPane( copyjlist ) ); // add list with scrollpane } // end MultipleSelectionFrame constructor } // end class MultipleSelectionFrame

84 // Testing MultipleSelectionFrame. import javax.swing..swing.jframe JFrame; Osnova 84 public class MultipleSelectionTest public static void main( String args[] ) MultipleSelectionFrame multipleselectionframe = new MultipleSelectionFrame(); multipleselectionframe.setdefaultcloseoperation setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); multipleselectionframe.setsize setsize( 350, 140 ); // set frame size multipleselectionframe.setvisible setvisible( true ); // display frame } // end main } // end class MultipleSelectionTest

85 Výstupy aplikace 85

86 Mouse Event Handling 86 Rozhraní Event-listener pro události způsobené myší MouseListener MouseMotionListener Listen for MouseEvents

87 Metody rozhraní MouseListener 87 public void mousepressed( MouseEvent event ) Metoda je vyvolána, když je stisknuto tlačítko myši, zatímco kurzor myši je na komponentě. public void MouseClicked( MouseEvent event ) Metoda je vyvolána, když je stisknuto a uvolněno tlačítko myši, zatímco kurzor zůstává na komponentě. Této události vždy předchází volání mousepressed. public void mousereleased( MouseEvent event ) Metoda je volaná, když po stisknutí je uvolněno tlačítko myši. Tuto událost vždy předchází volání mousepressed a jedno nebo více volání mousedragged. public void mouseentered( MouseEvent event ) Metoda je volaná, když kurzor myši navazuje spojení s komponentou. public void mouseexited( MouseEvent event ) Metoda je volaná, když kurzor myši opouští spojení s komponentou.

88 Metody rozhraní MouseMotionListener 88 public void mousedragged( MouseEvent event ) Metoda je volaná při současném splnění: kurzor myši na komponentě, myš se posunula, tlačítko myši zůstává stisknuté. Této události vždy předchází volání metody mousepressed. Všechny události tažení jsou zaslány komponentě na niž uživatel začal táhnout myší. public void mousemoved( MouseEvent event ) Metoda je volaná když se myš přesune a kurzor myši je na komponentě. Všechny události posunutí jsou zaslány komponentě, na níž je aktuálně umístěna myš.

89 // Demonstrating mouse events. import java.awt awt.color Color; import java.awt awt.borderlayout BorderLayout; import java.awt awt.event event.mouselistener MouseListener; import java.awt awt.event event.mousemotionlistener MouseMotionListener; import java.awt awt.event event.mouseevent MouseEvent; import javax.swing..swing.jframe JFrame; import javax.swing..swing.jlabel JLabel; import javax.swing..swing.jpanel JPanel; Osnova 89 public class MouseTrackerFrame extends JFrame private JPanel mousepanel; // panel in which mouse events will occur private JLabel statusbar; // label that displays event information // MouseTrackerFrame constructor sets up GUI and // registers mouse event handlers public MouseTrackerFrame() super( "Demonstrating " Mouse Events" ); mousepanel = new JPanel(); // create panel mousepanel.setbackground setbackground( Color.WHITE ); // set background color add( mousepanel, BorderLayout.CENTER ); // add panel to JFrame statusbar = new JLabel( "Mouse outside JPanel" ); add( statusbar, BorderLayout.SOUTH ); // add label to JFrame

90 // create and register listener for mouse and mouse motion events MouseHandler handler = new MouseHandler(); mousepanel.addmouselistener addmouselistener( handler ); mousepanel.addmousemotionlistener addmousemotionlistener( handler ); } // end MouseTrackerFrame constructor Osnova 90 private class MouseHandler implements MouseListener, MouseMotionListener // MouseListener event handlers // handle event when mouse released immediately after press public void mouseclicked( MouseEvent event ) statusbar.settext settext( String.format format( "Clicked" at [%d, %d]", event.getx getx(), event.gety gety() ) ); } // end method mouseclicked // handle event when mouse pressed public void mousepressed( MouseEvent event ) statusbar.settext settext( String.format format( "Pressed" at [%d, %d]", event.getx getx(), event.gety gety() ) ); } // end method mousepressed // handle event when mouse released after dragging public void mousereleased( MouseEvent event ) statusbar.settext settext( String.format format( "Released" at [%d, %d]", event.getx getx(), event.gety gety() ) ); } // end method mousereleased

91 // handle event when mouse enters area public void mouseentered( MouseEvent event ) statusbar.settext settext( String.format format( "Mouse entered at [%d, %d]", event.getx getx(), event.gety gety() ) ); mousepanel.setbackground setbackground( Color.GREEN ); } // end method mouseentered Osnova 91 // handle event when mouse exits area public void mouseexited( MouseEvent event ) statusbar.settext settext( "Mouse outside JPanel" ); mousepanel.setbackground setbackground( Color.WHITE ); } // end method mouseexited // MouseMotionListener event handlers // handle event when user drags mouse with button pressed public void mousedragged( MouseEvent event ) statusbar.settext settext( String.format format( "Dragged" at [%d, %d]", event.getx getx(), event.gety gety() ) ); } // end method mousedragged // handle event when user moves mouse public void mousemoved( MouseEvent event ) statusbar.settext settext( String.format format( "Moved" at [%d, %d]", event.getx getx(), event.gety gety() ) ); } // end method mousemoved } // end inner class MouseHandler } // end class MouseTrackerFrame

92 // Testing MouseTrackerFrame. import javax.swing..swing.jframe JFrame; Osnova 92 public class MouseTracker public static void main( String args[] ) MouseTrackerFrame mousetrackerframe = new MouseTrackerFrame(); mousetrackerframe.setdefaultcloseoperation setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); mousetrackerframe.setsize setsize( 300, 100 ); // set frame size mousetrackerframe.setvisible setvisible( true ); // display frame } // end main } // end class MouseTracker

93 Výstupy aplikace 93

94 Třídy Adapter 94 Třida Adapter Implementuje rozhraní Poskytuje standardní implementaci každé metody rozhraní Používá se, když nejsou třeba všechny metody daného rozhraní

95 Třídy Event-adapter a rozhraní které implementují v balíčku java.awt.event 95 Třída Event-adapter v java.awt.event CommonentAdapter ContainerAdapter FocusAdapter KeyAdapter MouseAdapter MouseMotionAdapter WindowAdapter implementuje rozhraní ComponentListener ContainerListener FocusListener KeyListener MouseListener MouseMotionListener WindowListener

96 // Demonstrating mouse clicks and distinguishing between mouse buttons. import java.awt awt.borderlayout BorderLayout; import java.awt awt.graphics Graphics; import java.awt awt.event event.mouseadapter MouseAdapter; import java.awt awt.event event.mouseevent MouseEvent; import javax.swing..swing.jframe JFrame; import javax.swing..swing.jlabel JLabel; Osnova 96 public class MouseDetailsFrame extends JFrame private String details; // String representing private JLabel statusbar; // JLabel that appears at bottom of window // constructor sets title bar String and register mouse listener public MouseDetailsFrame() super( "Mouse clicks and buttons" ); statusbar = new JLabel( "Click" the mouse" ); add( statusbar, BorderLayout.SOUTH ); addmouselistener( new MouseClickHandler() ); // add handler } // end MouseDetailsFrame constructor

97 // inner class to handle mouse events private class MouseClickHandler extends MouseAdapter // handle mouse click event and determine which button was pressed public void mouseclicked( MouseEvent event ) int xpos = event.getx getx(); // get x position of mouse int ypos = event.gety gety(); // get y position of mouse Osnova 97 details = String.format format( "Clicked" %d time(s)", event.getclickcount getclickcount() ); if ( event.ismetadown ismetadown() ) // right mouse button details += " with right mouse button"; else if ( event.isaltdown isaltdown() ) // middle mouse button details += " with center mouse button"; else // left mouse button details += " with left mouse button"; statusbar.settext settext( details ); // display message in statusbar } // end method mouseclicked } // end private inner class MouseClickHandler } // end class MouseDetailsFrame

98 // Testing MouseDetailsFrame. import javax.swing..swing.jframe JFrame; public class MouseDetails public static void main( String args[] ) MouseDetailsFrame mousedetailsframe = new MouseDetailsFrame(); mousedetailsframe.setdefaultcloseoperation setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); mousedetailsframe.setsize setsize( 400, 150 ); // set frame size mousedetailsframe.setvisible setvisible( true ); // display frame } // end main } // end class MouseDetails Aplikace Osnova 98

99 Výsledky aplikace 99

100 Zpracování událostí klávesnice Key Event Handling 100 Rozhraní KeyListener Zpracovává key events události jsou generovány (vytvářeny) když je stisknuta klávesa a když je uvolněna klávesa KeyEvent Obsahuje virtual key code který reprezentuje klávesu

101 // Demonstrating keystroke events. import java.awt awt.color Color; import java.awt awt.event event.keylistener KeyListener; import java.awt awt.event event.keyevent KeyEvent; import javax.swing..swing.jframe JFrame; import javax.swing..swing.jtextarea JTextArea; Osnova 101 public class KeyDemoFrame extends JFrame implements KeyListener private String line1 = ""; // first line of textarea private String line2 = ""; // second line of textarea private String line3 = ""; // third line of textarea private JTextArea textarea; // textarea to display output // KeyDemoFrame constructor public KeyDemoFrame() super( "Demonstrating " Keystroke Events" ); textarea = new JTextArea( 10, 15 ); // set up JTextArea textarea.settext settext( "Press" any key on the keyboard..." ); textarea.setenabled setenabled( false ); // disable textarea textarea.setdisabledtextcolor setdisabledtextcolor( Color.BLACK ); // set text color add( textarea ); // add textarea to JFrame addkeylistener( this ); // allow frame to process key events } // end KeyDemoFrame constructor

102 // handle press of any key public void keypressed( KeyEvent event ) line1 = String.format( "Key pressed: %s", event.getkeytext( event.getkeycode() ) ); // output pressed key setlines2and3( event ); // set output lines two and three } // end method keypressed Osnova 102 // handle release of any key public void keyreleased( KeyEvent event ) line1 = String.format( "Key released: %s", event.getkeytext( event.getkeycode() ) ); // output released key setlines2and3( event ); // set output lines two and three } // end method keyreleased // handle press of an action key public void keytyped( KeyEvent event ) line1 = String.format( "Key typed: %s", event.getkeychar() ); setlines2and3( event ); // set output lines two and three } // end method keytyped // set second and third lines of output private void setlines2and3( KeyEvent event ) line2 = String.format( "This key is %san action key", ( event.isactionkey()? "" : "not " ) ); String temp = event.getkeymodifierstext( event.getmodifiers() );

103 line3 = String.format format( "Modifier" keys pressed: %s", ( temp.equals equals( "" )? "none" none" : temp ) ); // output modifiers Osnova 103 textarea.settext settext( String.format format( "%s\n%s n%s\n%s n%s\n", n", line1, line2, line3 ) ); // output three lines of text } // end method setlines2and3 } // end class KeyDemoFrame

104 // Testing KeyDemoFrame. import javax.swing..swing.jframe JFrame; Osnova 104 public class KeyDemo public static void main( String args[] ) KeyDemoFrame keydemoframe = new KeyDemoFrame(); keydemoframe.setdefaultcloseoperation setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); keydemoframe.setsize setsize( 350, 100 ); // set frame size keydemoframe.setvisible setvisible( true ); // display frame } // end main } // end class KeyDemo

105 Výsledky aplikace 105

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

Seznámení s AWT: práce s okny, grafikou a textem

Seznámení s AWT: práce s okny, grafikou a textem Seznámení s AWT: S knihovnou Abstract Window Toolkit (AWT) jsme se seznámili již v kapitole 22, v níž jsme ji využili v kódu několika ukázkových apletů. Tato kapitola je věnována jejímu podrobnému popisu.

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

Java, grafické uživatelské rozhraní 2. Layout managery. Okno a kontejner

Java, grafické uživatelské rozhraní 2. Layout managery. Okno a kontejner Java, grafické uživatelské rozhraní 2 Layout managery Při rozmisťování komponent na formuláře (či jiné komponenty) nedefinujeme v Javě polohu komponent zpravidla absolutně. Důvodem je fakt, že Java může

Více

Třída DrawingTool. Obrázek 1: Prázdné okno připravené pro kreslení

Třída DrawingTool. Obrázek 1: Prázdné okno připravené pro kreslení Třída DrawingTool strana 1 1. Základ Třída DrawingTool Třída DrawingTool je určena k jednoduchému kreslení pomocí několika základních příkazů do grafického okna zadaných rozměrů (nastavení v konstruktoru),

Více

Práce se soubory v Javě

Práce se soubory v Javě Práce se soubory v Javě Cílem kapitoly je naučit pracovat se soubory a adresáři v Javě. Na jednoduchých příkladech ukázat procházení adresáře, čtení z textového souboru a zápis do textového souboru. Klíčové

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

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

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

Abstraktní datové typy: zásobník

Abstraktní datové typy: zásobník Abstraktní datové typy: zásobník 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 Abstraktní datové typy omezené rozhraní

Více

Projekt Obrázek strana 135

Projekt Obrázek strana 135 Projekt Obrázek strana 135 14. Projekt Obrázek 14.1. Základní popis, zadání úkolu Pracujeme na projektu Obrázek, který je ke stažení na http://java.vse.cz/. Po otevření v BlueJ vytvoříme instanci třídy

Více

Seminář Java II p.1/43

Seminář Java II p.1/43 Seminář Java II Seminář Java II p.1/43 Rekapitulace Java je case sensitive Zdrojový kód (soubor.java) obsahuje jednu veřejnou třídu Třídy jsou organizovány do balíků Hierarchie balíků odpovídá hierarchii

Více

Výčtový typ strana 67

Výčtový typ strana 67 Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce

Více

1. Spuštění programu. Poklepejte na ikonu Illustratoru na pracovní ploše nebo program spustíte přes nabídku Start > Programy > Adobe Illustrator

1. Spuštění programu. Poklepejte na ikonu Illustratoru na pracovní ploše nebo program spustíte přes nabídku Start > Programy > Adobe Illustrator Obsah a amu a 2 Pros s a amu 3 Nástroje s 4 Palety a 5 Ilustrované palety 6 Vrác ac a kontextové nab ky Existují dva hlavní typy programů pro vytváření a úpravy grafických dokumentů bitmapové (neboli rastrové)

Více

Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++

Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++ Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++ Globální konstantní proměnné Konstantní proměnné specifikujeme s klíčovým slovem const, tyto konstantní proměné

Více

Vytvoření pokročilé Fotogalerie v Drupalu - Views

Vytvoření pokročilé Fotogalerie v Drupalu - Views Vytvoření pokročilé Fotogalerie v Drupalu - Views Views Máme tři pohledy: gallery_photos, all_galeries, admin_gallery Buď je můžete vytvořit podle návodu níže, nebo importovat z přiložených txt souborů

Více

Dokument XHTML. Prohlížeč. styl CSS. Výstupní dokument. Soubor DTD

Dokument XHTML. Prohlížeč. styl CSS. Výstupní dokument. Soubor DTD CSS 1 Výhody: Udřování prezentace oddělené od dokumentu znamená, že můžete nastavit styly dokumentu pro různá média; Oddělení dokumentu od jeho prezentace znamená menší dokument, což dále znamená, že se

Více

Nápověda k aplikaci GraphGUI

Nápověda k aplikaci GraphGUI Nápověda k aplikaci GraphGUI 1 APLIKACE Aplikace slouží pro zobrazování závislosti několika veličin s různými jednotkami a rozsahy na čase v jednom grafu. Do aplikace lze importovat data ze souborů různých

Více

Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události

Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události Petr Blaha Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události Cykly Základní funkce (matematické, textové,

Více

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Využití OOP v praxi -- Knihovna PHP -- Interval.cz Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování

Více

Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39

Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39 Programování v C# Hodnotové datové typy, řídící struktury Petr Vaněček 1 / 39 Obsah přednášky Referenční datové typy datové položky metody přístupové metody accessory, indexery Rozhraní Pole 2 / 39 Třídy

Více

Změna vlastností kódem

Změna vlastností kódem Změna vlastností kódem - Metoda setjménovlastnosti(hodnota); - Zadání úkolu Změna vlastností kódem Práce s vlastnostmi Metody setxxx nastavení vlastnosti Metody getxxx zjištění hodnoty vlastnosti případně

Více

Správce virtuálních strojů

Správce virtuálních strojů Katedra informatiky a výpočetní techniky Operační systémy Správce virtuálních strojů mail: novotny@students.zcu.cz Jiří Novotný A09N0032P Zdeněk Janda A09N0076P Miroslav Hauser A09N0037P 1 Zadání Navrhněte

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

Uživatelský manuál aplikace. Dental MAXweb

Uživatelský manuál aplikace. Dental MAXweb Uživatelský manuál aplikace Dental MAXweb Obsah Obsah... 2 1. Základní operace... 3 1.1. Přihlášení do aplikace... 3 1.2. Odhlášení z aplikace... 3 1.3. Náhled aplikace v jiné úrovni... 3 1.4. Změna barevné

Více

WORD. (zobecněno pro verzi 2007)

WORD. (zobecněno pro verzi 2007) WORD (zobecněno pro verzi 2007) Program MS Word patří softwarově do skupiny uživatelských aplikací, které se nazývají textové editory. Slouží především k editacím či-li úpravám textů vč. vkládání grafických

Více

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v DSL manuál Ing. Jan Hranáč 27. října 2010 V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v současné době krátký) seznam vestavěných funkcí systému. 1 Vytvoření nového dobrodružství Nejprve

Více

WebmMenu slouží pro editaci a management položek menu. Pro další informace si prosím vyberte jedno z následujících témat:

WebmMenu slouží pro editaci a management položek menu. Pro další informace si prosím vyberte jedno z následujících témat: uživatelské manuály WebMenu WebmMenu slouží pro editaci a management položek menu. Pro další informace si prosím vyberte jedno z následujících témat: Jak na to aneb snadné vytvoření menu Význam jednotlivých

Více

8. OKNA 73. obr. 1 Roletové menu "Okna"

8. OKNA 73. obr. 1 Roletové menu Okna 8. OKNA Obsah 8. OKNA 73 OBSAH 73 8.1 UKLÁDÁNÍ UŽIVATELSKÝCH OKEN 76 8.2 NAČÍTÁNÍ UŽIVATELSKÝCH OKEN 77 8.3 VLASTNOSTI OKEN 77 8.3.1 VLASTNOSTI ZÁLOŽKOVÉHO OKNA 78 8.4 VOLBA OKNA 78 8.5 ZRUŠENÍ OKNA 79

Více

Základy HTML, URL, HTTP, druhy skriptování, formuláře

Základy HTML, URL, HTTP, druhy skriptování, formuláře Základy HTML, URL, HTTP, druhy skriptování, formuláře Skriptování na straně klienta a serveru Skriptování na straně klienta se provádí pomocí programovacího jazyka JavaScript, který je vkládán do HTML

Více

Stream API. Petr Krajča. Základy programovaní 4 (Java) Katedra informatiky Univerzita Palackého v Olomouci

Stream API. Petr Krajča. Základy programovaní 4 (Java) Katedra informatiky Univerzita Palackého v Olomouci Základy programovaní 4 (Java) Stream API Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/ZP4JV 5. listopad, 2014 1 / 10 Stream API Java 8 nový přístup k práci s kolekcemi

Více

3. Třídy. Základní pojmy objektového programování. Třídy

3. Třídy. Základní pojmy objektového programování. Třídy 3. Třídy Základní pojmy objektového programování Jak už víme, je Java objektovým programovacím jazykem. V úvodu této kapitoly si objasníme základní pojmy objektové teorie. Objekt představuje souhrn dat

Více

Název: VY_32_INOVACE_PG3314 Rendering - vykreslení vytvořené scény. Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max

Název: VY_32_INOVACE_PG3314 Rendering - vykreslení vytvořené scény. Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max Název: VY_32_INOVACE_PG3314 Rendering - vykreslení vytvořené scény Autor: Mgr. Tomáš Javorský Datum vytvoření: 05 / 2012 Ročník: 3 Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max Anotace:

Více

Pantek Productivity Pack. Verify User Control. Uživatelský manuál

Pantek Productivity Pack. Verify User Control. Uživatelský manuál Pantek Productivity Pack Verify User Control Verze 2.5 29. října 2002 Obsah ÚVOD... 3 Charakteristika produktu... 3 Systémové požadavky... 3 Omezení... 3 Instalace... 4 Licencování... 4 KONFIGURACE...

Více

MS Excel 2010. Základy maker. Operační program Vzdělávání pro konkurenceschopnost. Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU

MS Excel 2010. Základy maker. Operační program Vzdělávání pro konkurenceschopnost. Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU MS Excel 2010 Základy maker Operační program Vzdělávání pro konkurenceschopnost Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU Registrační číslo: CZ.1.07/2.2.00/15.0224, Oblast podpory:

Více

Manuál k programu KaraokeEditor

Manuál k programu KaraokeEditor Manuál k programu KaraokeEditor Co je KaraokeEditor? Program slouží pro editaci tagů v hudebních souborech formátu mp3. Tagy jsou doprovodné informace o písni, uložené přímo v mp3. Aplikace umí pracovat

Více

25. TVORBA HTML DIALOGŮ PRO PEVNÉ TVARY

25. TVORBA HTML DIALOGŮ PRO PEVNÉ TVARY 25. TVORBA HTML DIALOGŮ PRO PEVNÉ TVARY 25.1 Přidání nového tlačítka do menu Abychom mohli zpřístupnit nový pevný tvar do systému, je třeba přidat nové tlačítko do Menu. V našem případě se jedná o příčné

Více

FFUK Uživatelský manuál pro administraci webu Obsah

FFUK Uživatelský manuál pro administraci webu Obsah FFUK Uživatelský manuál pro administraci webu Obsah FFUK Uživatelský manuál pro administraci webu... 1 1 Úvod... 2 2 Po přihlášení... 2 3 Základní nastavení webu... 2 4 Menu... 2 5 Bloky... 5 6 Správa

Více

1. Téma 12 - Textové soubory a výjimky

1. Téma 12 - Textové soubory a výjimky 1. Téma 12 - Textové soubory a výjimky Cíl látky Procvičit práci se soubory s využitím výjimek. 1.1. Úvod Program, aby byl programem, my mít nějaké výstupy a vstupy. Velmi častým případem je to, že se

Více

Java pro programátory.net

Java pro programátory.net Java pro programátory.net Lukáš Zapletal lukas.zapletal@qcm.cz Představení jazyka Co je to Java? [džáva] Java je objektově orientovaný jazyk stvořený pro vestavěná zařízení, který se uchytil v mnoha oblastech

Více

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni! Java práce s řetězci Trochu povídání.. Řetězce jsou v Javě reprezentovány instancemi tříd StringBuffer a String. Tyto třídy jsou součástí balíčku java.lang, tudíž je možno s nimi pracovat ihned bez nutného

Více

Úvod. Program ZK EANPRINT. Základní vlastnosti programu. Co program vyžaduje. Určení programu. Jak program spustit. Uživatelská dokumentace programu

Úvod. Program ZK EANPRINT. Základní vlastnosti programu. Co program vyžaduje. Určení programu. Jak program spustit. Uživatelská dokumentace programu sq Program ZK EANPRINT verze 1.20 Uživatelská dokumentace programu Úvod Základní vlastnosti programu Jednoduchost ovládání - umožňuje obsluhu i málo zkušeným uživatelům bez nutnosti většího zaškolování.

Více

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech 7 Formátovaný výstup, třídy, objekty, pole, chyby v programech 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 formátovanému výstupu,

Více

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou MySQL Typy tabulek Storage Engines MyISAM defaultní, neumí transakce, umí fulltext InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) MEMORY (HEAP) v paměti; neumí transakce ARCHIVE velké množství

Více

Tvorba www-stránek. Příkazy jazyka HTML. Budeme pracovat následovně: Základní struktura webové stránky. Příkazy sekce HEAD

Tvorba www-stránek. Příkazy jazyka HTML. Budeme pracovat následovně: Základní struktura webové stránky. Příkazy sekce HEAD Tvorba www-stránek Webové stránky jsou napsané pomocí jazyka HTML (HyperText Markup Language). Ke tvorbě webových stránek potřebujeme - speciální program umožňuje tvořit stránku bez znalostí HTML-kódu

Více

METODICKÝ POKYN PRÁCE S MS PowerPoint - POKROČILÍ. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.

METODICKÝ POKYN PRÁCE S MS PowerPoint - POKROČILÍ. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. METODICKÝ POKYN PRÁCE S MS PowerPoint - POKROČILÍ Pozadí snímku Pozadí snímku můžeme nastavit všem snímkům stejné nebo můžeme volit pro jednotlivé snímky různé pozadí. Máme několik možností: Pozadí snímku

Více

Pracovní výkazy. návod k použití. Internetová aplikace Pracovní výkazy slouží k zadávání pracovních výkazů od zaměstnanců a externích pracovníků.

Pracovní výkazy. návod k použití. Internetová aplikace Pracovní výkazy slouží k zadávání pracovních výkazů od zaměstnanců a externích pracovníků. 1 Popis aplikace Pracovní výkazy návod k použití Internetová aplikace Pracovní výkazy slouží k zadávání pracovních výkazů od zaměstnanců a externích pracovníků. 2 Technické požadavky klienta Internetový

Více

Uživatelské příkazy: false - dialog ukončen IDCANCEL. Vytvoří nové okno. title - titulek okna

Uživatelské příkazy: false - dialog ukončen IDCANCEL. Vytvoří nové okno. title - titulek okna Uživatelské příkazy: CMD CRW MDA Popis Vytvoří nové okno Odpověď na požadavek uzavření okna SWT Nastaví titulek okna text MVW Přesune okno na pozici x;y SZW Změní velikost okna width;height style SWP MSB

Více

Windows - základy. Hlavním vypínačem na základní jednotce. K datům uloženým do výchozí složky.

Windows - základy. Hlavním vypínačem na základní jednotce. K datům uloženým do výchozí složky. Práce se soubory a složkami Windows - základy Otázka Jakým způsobem se zapíná počítač? Jaká vstupní pole musí být vyplněna v přihlašovacím panelu Windows? K čemu slouží postup "Nabídka Start" - "Vypnout"

Více

WYSIWYG EDITOR PRO XML FORM

WYSIWYG EDITOR PRO XML FORM WYSIWYG EDITOR PRO XML FORM Ing. Tran Thanh Huan, Ing. Nguyen Ba Nghien, Doc. Ing. Josef Kokeš, CSc Abstract: In this paper, we introduce the WYSIWYG editor pro XML Form. We also show how to create a form

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

43 HTML šablony. Záložka Šablony v systému

43 HTML šablony. Záložka Šablony v systému 43 HTML šablony Modul HTML šablony slouží ke správě šablon pro výstupy z informačního systému modularis ve formátu HTML. Modul umožňuje k šablonám doplňovat patičku, dokumentaci a vázat šablony na konkrétní

Více

Hotline Helios Tel.: 800 129 734 E-mail: helios@ikomplet.cz Pokročilé ovládání IS Helios Orange

Hotline Helios Tel.: 800 129 734 E-mail: helios@ikomplet.cz Pokročilé ovládání IS Helios Orange Hotline Helios Tel.: 800 129 734 E-mail: helios@ikomplet.cz Pokročilé ovládání IS Helios Orange 2013 BüroKomplet, s.r.o. Obsah 1 Kontingenční tabulky... 3 1.1 Vytvoření nové kontingenční tabulky... 3 2

Více

MQL4 COURSE. V tomto dodatku je obsažen popis 25 obchodních funkcí jazyka MQL4. Rozhodl jsem se napsat

MQL4 COURSE. V tomto dodatku je obsažen popis 25 obchodních funkcí jazyka MQL4. Rozhodl jsem se napsat MQL4 COURSE By Coders guru www.forex-tsd.com (Appendix 2) Trading Functions -------------------- V tomto dodatku je obsažen popis 25 obchodních funkcí jazyka MQL4. Rozhodl jsem se napsat tento dodatek

Více

Pokročilé programování v jazyce C pro chemiky (C3220) Dědičnost tříd v C++

Pokročilé programování v jazyce C pro chemiky (C3220) Dědičnost tříd v C++ Pokročilé programování v jazyce C pro chemiky (C3220) Dědičnost tříd v C++ Dědičnost tříd Dědičnost umožňuje vytvářet nové třídy z tříd existujících tak, že odvozené třídy (tzv. potomci) dědí vlastnosti

Více

Tabulkový kalkulátor

Tabulkový kalkulátor 1.1.1 GRAF Vhodným doplněním textů a tabulek jsou grafy. Graf je v podstatě obrázek graficky zobrazující hodnoty údajů z tabulky. Je vhodným objektem pro porovnávání údajů a jejich analýzu. Graf můžeme

Více

Prostředí Microstationu a jeho nastavení. Nastavení výkresu

Prostředí Microstationu a jeho nastavení. Nastavení výkresu Prostředí Microstationu a jeho nastavení Nastavení výkresu 1 Pracovní plocha, panely nástrojů Seznámení s pracovním prostředím ovlivní pohodlí, rychlost, efektivitu a možná i kvalitu práce v programu Microstation.

Více

7. Dynamické datové struktury

7. Dynamické datové struktury 7. Dynamické datové struktury Java poskytuje několik možností pro uložení většího množství dat (tj. objektů či primitivních datových typů) v paměti. S nejjednodušší z nich, s polem, jsme se již seznámili.

Více

Další nutný soubor je laydiv.js, ve kterém jsou uloženy funkce pro zobrazování virů na ploše a funkce pro odkaz na Teachers Guide.

Další nutný soubor je laydiv.js, ve kterém jsou uloženy funkce pro zobrazování virů na ploše a funkce pro odkaz na Teachers Guide. ESCAPE OF VIRUSES Hra Escape of viruses je psána pomocí příkazů Javascriptu a standardních příkazů HTML. Hra se spouští tlačítkem Start game. Úkolem hráče je eliminovat viry na hrací ploše kliknutím kurzoru

Více

Kolekce, cyklus foreach

Kolekce, cyklus foreach Kolekce, cyklus foreach Jen informativně Kolekce = seskupení prvků (objektů) Jednu již známe pole (Array) Kolekce v C# = třída, která implementuje IEnumerable (ICollection) Cyklus foreach ArrayList pro

Více

Návod pro programovatelný ovladač

Návod pro programovatelný ovladač Návod pro programovatelný ovladač Dálkáč General 4 Stars Začínáme Pro programování ovladače je nutné mít připojený IR převodník (programátor) do USB portu počítače a spustit software IR Programmable remote

Více

DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 61 DATABÁZE - ACCESS. (příprava k vykonání testu ECDL Modul 5 Databáze a systémy pro zpracování dat)

DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 61 DATABÁZE - ACCESS. (příprava k vykonání testu ECDL Modul 5 Databáze a systémy pro zpracování dat) DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 61 DATABÁZE - ACCESS (příprava k vykonání testu ECDL Modul 5 Databáze a systémy pro zpracování dat) DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 62 Databáze a systémy pro uchování

Více

22. Tvorba webových stránek

22. Tvorba webových stránek 22. Tvorba webových stránek Webové stránky jsou spolu s elektronickou poštou nejpoužívanější prostředky internetu. Brouzdáme li internetem používáme nějaký prohlížeč. To, co vidíme na obrazovce v prohlížeči

Více

Nápověda k používání mapové aplikace Katastrální mapy Obsah

Nápověda k používání mapové aplikace Katastrální mapy Obsah Nápověda k používání mapové aplikace Katastrální mapy Obsah Práce s mapou aplikací Marushka... 2 Přehledová mapa... 3 Změna měřítka... 4 Posun mapy... 5 Druhy map... 6 Doplňkové vrstvy... 7 Vyhledávání...

Více

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007 WSH Windows Script Hosting OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007 Co je skript? Skriptování nástroj pro správu systému a automatizaci úloh Umožňuje psát skripty jednoduché interpretované programové

Více

Návod k softwaru. Získání licence. vojtech.vesely@catania.cz www.catania.cz

Návod k softwaru. Získání licence. vojtech.vesely@catania.cz www.catania.cz Získání licence Ze stránky si ze sekce Software stáhněte Aplikaci k získání licence. Tuto aplikaci není třeba instalovat, stačí rozbalit zazipovaný soubor. Za cenu 300,- Kč bez DPH má uživatel nárok na

Více

Tutoriál grafiky pomocí Xlib

Tutoriál grafiky pomocí Xlib Tutoriál grafiky pomocí Xlib Projekt do GZN Radek Brich Fakulta informačních technologií Vysoké učení technické v Brně 2006 Radek Brich (FIT VUT Brno) Tutoriál grafiky pomocí Xlib 2006 1 / 26 X Window

Více

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

Základy práce s aplikací ecba / ESOP

Základy práce s aplikací ecba / ESOP Základy práce s aplikací ecba / ESOP Obsah 1. SYSTÉMOVÉ POŽADAVKY A REGISTRACE... 2 Nová registrace... 2 2. SPRÁVA PROJEKTŮ... 3 Horní lišta... 3 Levé menu... 4 Operace s projekty... 4 3. PRÁCE S PROJEKTEM...

Více

O CSS podrobněji. Box model Document flow Layout

O CSS podrobněji. Box model Document flow Layout O CSS podrobněji Box model Document flow Layout O CSS podrobněji Box model Každý element má: -obsah (content) -spadávku (padding) -rámeček (border) -okraj (margin) O CSS podrobněji http://www.w3.org/tr/css21/box.html

Více

10 Balíčky, grafické znázornění tříd, základy zapozdření

10 Balíčky, grafické znázornění tříd, základy zapozdření 10 Balíčky, grafické znázornění tříd, základy zapozdření 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 příkazům balíčkům, grafickému

Více

Obsah. 1.1 Práce se záznamy... 3 1.2 Stránka Dnes... 4. 2.1 Kontakt se zákazníkem... 5

Obsah. 1.1 Práce se záznamy... 3 1.2 Stránka Dnes... 4. 2.1 Kontakt se zákazníkem... 5 CRM SYSTÉM KORMORÁN UŽIVATELSKÁ PŘÍRUČKA Obsah 1 Základní práce se systémem 3 1.1 Práce se záznamy................................. 3 1.2 Stránka Dnes.................................... 4 1.3 Kalendář......................................

Více

PTERANODONSOFT.CZ. Manuál k programu Guldiner Light verze 2.2.

PTERANODONSOFT.CZ. Manuál k programu Guldiner Light verze 2.2. Manuál k programu Guldiner Light verze 2.2. e-mail: pteranodonsoft@seznam.cz web: www.pteranodonsoft.cz facebook: www.facebook.com/guldinerlight skupina: www.facebook.com/groups/guldinerlight Obsah: První

Více

Návod pro programovatelný ovladač

Návod pro programovatelný ovladač Návod pro programovatelný ovladač Dálkáč Makro 6 Stars Začínáme Pro programování ovladače je zapotřebí mít připojený ovladač do USB portu počítače kabelem USB/mini USB a spustit SW na programování. SW

Více

Popis a ovládání. Aplikace 602XML Filler

Popis a ovládání. Aplikace 602XML Filler Popis a ovládání Aplikace 602XML Filler Základní okno aplikace 602XML Filler Nástrojová lišta Otevřený formulář Pracovní panel Stavový řádek Kontextová nápověda k formulářovému poli Nástrojová lišta Otevře

Více

17. Projekt Trojúhelníky

17. Projekt Trojúhelníky Projekt Trojúhelníky strana 165 17. Projekt Trojúhelníky 17.1. Základní popis, zadání úkolu Pracujeme na projektu Trojúhelníky, který je ke stažení na java.vse.cz. Aplikace je napsána s textovým uživatelským

Více

Zóny a pravidla UŽIVATELSKÁ PŘÍRUČKA

Zóny a pravidla UŽIVATELSKÁ PŘÍRUČKA Zóny a pravidla UŽIVATELSKÁ PŘÍRUČKA Verze 4.1.30 10/2014 Obsah Zóny... 2 Omezení modulu Zóny a pravidla... 2 Vstup do modulu Zóny a pravidla... 3 Karta zóny... 3 Vytvoření nové zóny... 3 Editace zóny...

Více

Dotyková obrázovká v prográmu TRIFID

Dotyková obrázovká v prográmu TRIFID Dotyková obrázovká v prográmu TRIFID V současné verzi je možné ovládat pouze klasický prodej, funkce pro variantu GASTRO (účtování na jednotlivé stoly, tisk do kuchyně) jsou zatím ve vývoji. Nastavení

Více

SECURITY VIEW. Uživatelský manuál. verze 0.1. Dokumentace vytvořena dne 21. 9. 2012 poslední korekce dne 21. 9. 2012. strana 1. VARIANT plus s.r.o.

SECURITY VIEW. Uživatelský manuál. verze 0.1. Dokumentace vytvořena dne 21. 9. 2012 poslední korekce dne 21. 9. 2012. strana 1. VARIANT plus s.r.o. verze 0.1 Dokumentace vytvořena dne 21. 9. 2012 poslední korekce dne 21. 9. 2012 VARIANT plus s.r.o. strana 1 OBSAH 1. Úvod... 3 1.1. Přihlášení do aplikace... 3 2. Hlavní okno aplikace... 4 2.1. Menu

Více

24.5.2008 Jaku b Su ch ý 1

24.5.2008 Jaku b Su ch ý 1 Drupal API 24.5.2008 Jaku b Su ch ý 1 Témata Práce s databází Bezpečnost práce s Drupalem Forms API Jak udělat vlastní modul Hooks Lokalizace 24.5.2008 Jaku b Su ch ý 2 Práce s databází Drupal poskytuje

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

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence

Více

Jakub Čermák http://www.jcermak.cz. Microsoft Student Partner

Jakub Čermák <jakub@jcermak.cz> http://www.jcermak.cz. Microsoft Student Partner Jakub Čermák http://www.jcermak.cz Microsoft Student Partner Úvod, příklady použití, trocha teorie Struktura aplikace Typy obecně, primitivní typy, speciální typy Podmínky, cykly, namespaces

Více

AutoPEN, Ing. Lubomír Bucek, Halasova 895, 460 06 Liberec 6 www.autopen.net, autopen@volny.cz 481 120 160, 606 638 253.

AutoPEN, Ing. Lubomír Bucek, Halasova 895, 460 06 Liberec 6 www.autopen.net, autopen@volny.cz 481 120 160, 606 638 253. AutoPEN, Ing. Lubomír Bucek, Halasova 895, 460 06 Liberec 6 www.autopen.net, autopen@volny.cz 481 120 160, 606 638 253 DS Strojař 1 Uživatelský manuál obsah Kapitola Stránka 1 Instalace 2 2 Nastavení 3

Více

SMART NOTEBOOK JAK VYUŽÍT PRVEK EXTREME COLLABORATION V PROSTŘEDÍ AUTORSKÉHO PROGRAMU

SMART NOTEBOOK JAK VYUŽÍT PRVEK EXTREME COLLABORATION V PROSTŘEDÍ AUTORSKÉHO PROGRAMU JAK VYUŽÍT PRVEK EXTREME COLLABORATION V PROSTŘEDÍ AUTORSKÉHO PROGRAMU SMART NOTEBOOK Zapojeni jsou všichni studenti, ve všech předmětech, s jakýmkoliv zařízením. Všichni společně a v jednom okamžiku.

Více

NÁVOD NA POUŽÍVÁNÍ SYSTÉMU ARIADNE 3 Strana 1 1 Úvod Systém Ariadne3 je systém pro správu obsahu (CMS - "Content Management System"). Umožňuje pomocí jednoduchého a intuitivního uživatelského rozhraní

Více

KAPITOLA 9. Formuláře

KAPITOLA 9. Formuláře KAPITOLA 9 Formuláře Nejen Web 2.0 aplikace, ale ani žádná stránka generující obsah přizpůsobený uživateli (anglicky User Generated Content) si nevystačí bez formulářů. Internetové stránky musí svým uživatelům

Více

Příručka pro aplikaci KSnapshot

Příručka pro aplikaci KSnapshot Richard J. Moore Robert L. McCormick Brad Hards Kontrolor: Lauri Watts Vývojář: Richard J Moore Vývojář: Matthias Ettrich Překlad: Lukáš Vlček 2 Obsah 1 Úvod 5 2 Použití KSnapshot 6 2.1 Spuštění KSnapshot.....................................

Více

PTERANODONSOFT.CZ. Manuál k programu Guldiner Light verze 2.3.

PTERANODONSOFT.CZ. Manuál k programu Guldiner Light verze 2.3. Manuál k programu Guldiner Light verze 2.3. e-mail: pteranodonsoft@seznam.cz web: www.pteranodonsoft.cz facebook: www.facebook.com/guldinerlight skupina: www.facebook.com/groups/guldinerlight autor: Bc.

Více

MƏj úĭet Uživatelský manuál Verze 1.01/2010

MƏj úĭet Uživatelský manuál Verze 1.01/2010 M j ú et Uživatelský manuál Verze 1.01/2010 Obsah 1 Přihlášení do aplikace Klientské centrum.......................................................................................... 4 2 Zprávy systému...................................................................................................................

Více

Masarykova ZŠ Klenčí pod Čerchovem OPERAČNÍ SYSTÉM

Masarykova ZŠ Klenčí pod Čerchovem OPERAČNÍ SYSTÉM Operační systém OPERAČNÍ SYSTÉM Masarykova MŠ a ZŠ Operační systém - zajišťuje komunikaci mezi hardwarem a softwarem organizuje přístup a využívání zdrojů počítače ( čas procesoru, přístup k datům na discích,

Více

Úvod do programu Solid Edge

Úvod do programu Solid Edge Úvod do programu Solid Edge Cíle této kapitoly V průběhu této kapitoly se naučíte: jak vypadá prostředí programu Solid Edge, najít a otevřít dokument programu Solid Edge, vytvořit a uložit dokument, používat

Více

Instalace Pokyny pro instalaci v operačním systému Windows XP / Vista / Win7 / Win8

Instalace Pokyny pro instalaci v operačním systému Windows XP / Vista / Win7 / Win8 Instalace Pokyny pro instalaci v operačním systému Windows XP / Vista / Win7 / Win8 1. Stáhněte si instalační program HOST makro engine z oficiálního webu IABYTE. 2. Spusťte instalační program a postupujte

Více

Použití inteligentních značek s informačními službami

Použití inteligentních značek s informačními službami Použití inteligentních značek s informačními službami Jan Fransen Podokno úloh Zdroje informací v aplikacích sady Microsoft Office 2003 umožňuje uživatelům snadno prohledávat množství integrovaných či

Více

Úvod do počítačové grafiky

Úvod do počítačové grafiky Úvod do počítačové grafiky elmag. záření s určitou vlnovou délkou dopadající na sítnici našeho oka vnímáme jako barvu v rámci viditelné části spektra je člověk schopen rozlišit přibližně 10 milionů barev

Více

KAPITOLA 3 - ZPRACOVÁNÍ TEXTU

KAPITOLA 3 - ZPRACOVÁNÍ TEXTU KAPITOLA 3 - ZPRACOVÁNÍ TEXTU KLÍČOVÉ POJMY textové editory formát textu tabulka grafické objekty odrážky a číslování odstavec CÍLE KAPITOLY Pracovat s textovými dokumenty a ukládat je v souborech různého

Více

zoom-driver Manuál k redakčnímu systému zoom-driver created by virtual-zoom s.r.o.

zoom-driver Manuál k redakčnímu systému zoom-driver created by virtual-zoom s.r.o. zoom-driver Manuál k redakčnímu systému zoom-driver created by virtual-zoom s.r.o. 1 Obsah 1. Přihlášení 2. Výpis sekcí 3. Vytvoření nové sekce 4. Editace sekce 4.1. Výběr sekce k editaci 5. Editace hlavičky

Více

Principy UML. Clear View Training 2005 v2.2 1

Principy UML. Clear View Training 2005 v2.2 1 Principy UML Clear View Training 2005 v2.2 1 1.2 Co je touml? Unified Modelling Language (UML) je univerzálníjazyk pro vizuální modelování systémů Podporuje všechny životní cykly Mohou jej implementovat

Více

Nastavení Java pro aplikaci G-Client Str. 1/8

Nastavení Java pro aplikaci G-Client Str. 1/8 Str. 1/8 Obsah 1. Instalace/aktualizace Javy... 2 2. Vytvoření výjimky pro aplikaci G-Client... 2 2.1. Vytvoření výjimky přes skript... 2 2.2. Ruční vytvoření výjimky... 3 3. Instalace certifikátu pro

Více