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.



Podobné dokumenty
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.

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

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

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

Grafické uživatelské rozhraní v Javě. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické

Programátorská příručka

Java - Kresba. 2/28/11 1/8 Java - kresba

Obrázek 6.14: Prohlížec nápovedy

Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda

Grafické uživatelské rozhraní v Javě. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické

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

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

Základy práce na PC. Ing. Jan Roubíček

GUI v Javě. Jiří Vokřínek. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze. Přednáška 5 B0B36PJV Programování v JAVA

GUI v Javě. GUI v Javě GUI komponenty a kontejnery Dialogová okna Události a obsluha událostí z GUI

GUI. Systémová integrace pro desktopové aplikace

8. GRAFICKÉ UŽIVATELSKÉ ROZHRANÍ

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

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

GUI v Javě. Jiří Vokřínek. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze. Přednáška 5 B0B36PJV Programování v JAVA

František Hudek. červen ročník

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

František Hudek. červenec 2012

Vývojové nástroje jazyka Java

Úloha 1. Text úlohy. Vyberte jednu z nabízených možností: NEPRAVDA. PRAVDA Úloha 2. Text úlohy

Pro označení disku se používají písmena velké abecedy, za nimiž následuje dvojtečka.

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

František Hudek. březen ročník. Informační a komunikační technologie OS WINDOWS Hlavní panel

Na vybraném serveru vytvoříme MySQL databázi. Soubory scratch.jpa, kickstart.php a en-gb.kickstart.ini nahrajeme na vybraný server.

Práce se soubory v Javě

Reliance 3 design OBSAH

1. Začínáme s FrontPage

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Výpočetní technika. PRACOVNÍ LIST č. 7. Ing. Luděk Richter

KAPITOLA 3 - ZPRACOVÁNÍ TEXTU

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro administrátory. Verze 1.

01. HODINA. 1.1 Spuštění programu VB Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.

8. Grafické uživatelské rozhraní

Projekty pro výuku programování v jazyce Java

Swing. Přehled komponent. Java UI, letní semestr 2017/2018 1

Vývoj multiplatformní aplikace v Qt

František Hudek. červen ročník

Výčtový typ strana 67

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

2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML

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

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

Vytváření DVD s DVDStyler

Delphi popis prostředí

Strategie ochrany před negativními dopady povodní a erozními jevy přírodě blízkými opatřeními v České republice

Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová. 5. Statistica

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

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

František Hudek. duben ročník

Programování v jazyce VISUAL BASIC.NET

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

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Mezi přednastavenými vizualizačními styly se přepínáme některou z těchto možností:

Tiskové sestavy. Zdroj záznamu pro tiskovou sestavu. Průvodce sestavou. Použití databází

APS 400 ipanel. Online informační a ovládací panel pro systém APS 400. Uživatelská příručka

Microsoft Publisher 2013 vypadá jinak než ve starších verzích, proto jsme vytvořili tuto příručku, která vám pomůže se s ním rychle seznámit.

Pracovní prostředí Excel 2010

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

Téma 1: Práce s Desktop. Téma 1: Práce s Desktop

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

ČESKY. Macro Key Manager Návod k použití

Excel tabulkový procesor

Zapouzdření. Tomáš Pitner, upravil Marek Šabo

1. Úvod do obsluhy AutoCADu

Pracovní prostředí Word 2003 versus Word 2010

UNIVERZITA PARDUBICE

Word 2007 praktická práce

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

MONITOROVACÍ SYSTÉM. Návod na obsluhu webového rozhraní. Truck Data Technology, s.r.o oficiální verze

Příprava projektů v programu Databox CONTACT Professional 5

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.

HP-2000E UŽIVATELSKÝ MANUÁL

Svolávací systém Uživatelský manuál

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

Operační systém MS Windows XP Professional

Dokument a jeho části oddíly, záhlaví, zápatí

Konfigurace Windows 7

1. Otevřete dokument, který chcete číst. 2. Na kartě Zobrazení klikněte ve skupině Zobrazení dokumentů na položku Čtení na celé obrazovce.

Územní plán Ústí nad Labem

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

SolidWorks. SW je parametrický 3D modelář a umožňuje. Postup práce v SW: Prostředí a ovládání

Takto chápanému druhu objektů se říká TŘÍDA.

ZSF web a intranet manuál

Sociomap Viewer Uživatelský manuál. Verze 3

VY_32_INOVACE_INF.08. Microsoft Windows II.

Pro správné zobrazení mapové aplikace je potřeba mít nainstalovaný zásuvný modul Flash Adobe Player.

Nový design ESO9. E S O 9 i n t e r n a t i o n a l a. s. U M l ý n a , P r a h a. Strana 1 z 9

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Excel 2007 praktická práce

MS Word 2007 Šablony programu MS Word

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

(IMPACT) CZ.1.07/2.2.00/

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Transkript:

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, fokus, look and feel, skinovatelný, správce uspořádání. GUI - Graphic User Interface - grafické uživatelské rozhraní nezávislé na zařízení, můžeme používat řadu vizuálních komponent: formuláře tlačítka přepínače dialogy grafické komponenty multimediální komponenty tiskové komponenty Typy grafických rozhraní v Javě AWT (Abstract Windows Toolkit) jsou starší používá se jen výjimečně (applety) nevýhodou značná náročnost na hardware a nepříliš pěkný vzhled výhodou podpora prakticky všech browserů AWT rozhraní je vláknově zabezpečené Aplikace přejímala vzhled OS, na kterém běžela. nahrazeno rozhraním JFC (Java Foundation Classes) obsahujícím vizuální i nevizuální komponenty nevizuální komponenty nazýváme Java Beans (kávové boby) vizuální komponenty: grafické rozhraní Swing Swing je bohatší na komponenty, vychází však z AWT využívá stejné události, je postaven na podobných komponentách, práce s oběma rozhraními je více-méně analogická rozhraní Swing je rychlejší nevýhodou je fakt, že ho neumí zobrazit korektně všechny browsery, je vláknově nezabezpečené názvy tříd. Názvy tříd v knihovně AWT představující komponenty (Button, Table, Frame,...) se liší od názvů tříd v rozhraní Swing a to přidáním písmene J (JButton, JTable, JFrame,...) informace o rozhraní Swing lze nalézt na stránkách společnosti Sun: http://java.sun.com/docs/books/tutorial/uiswing/index.html 2010-11-11 GUI - úvod 1/8

Postup při vytváření GUI aplikace navržení a vytvoření grafické rozhraní tvořeného jednotlivými komponentami zajištění možnosti ukončení programu definice události, které mají být v programu obslouženy, a zápis kódu pro jejich obsluhu formou handleru návrh grafického rozhraní by měl být vždy oddělen od výkonné části programu Rozdělení komponent Skupiny komponent mají hierarchickou strukturu Top-level komponenty komponenty, na které mohou být umisťovány jiné komponenty (tj. komponenty podkladové) nebo na ně naopak již žádnou další komponentu umístit nelze tyto komponenty jsou v hierarchii na nejvyšším stupni každá aplikace musí obsahovat alespoň jednu top-level komponentu mezi nejčastěji používané top-level komponenty patří: JFrame (formulář) JDialog Kontejnerové komponenty v aplikacích často používány na nižší hierarchické úrovni než top-level komponenty slouží k seskupování komponent, mohou na ně být umisťovány jiné komponenty kontejnerové komponenty bývají umístěny na top-level komponentách do této skupiny patří: Panel ScrollPane (panel s posuvníky pro zobrazování obrázků) TabbedPane (panel se záložkami) Toolbar (panel nástrojů) Základní komponenty slouží pro zajištění komunikace mezi uživatelem a aplikací vyskytují se prakticky v každé aplikaci do této skupiny patří: JButton (tlačítko) JCheckBox (zaškrtávací pole) JRadioButton (přepínací tlačítko) JComboBox (rozbalovací seznam) JList (seznam) JMenu (menu) JTextField (textové pole) 2010-11-11 GUI - úvod 2/8

SJpinner (zadávání číselných údajů) Needitovatelné informační komponenty jedná se informační komponenty, jejichž obsah nemůže být uživatelem měněn do této skupiny lze zařadit: JLabel (popis) JProgressBar (zobrazení průběhu běžícího procesu). Interaktivní komponenty komponenty představované standardními dialogy umožňující provádět často opakované činnosti: výběr souboru výběr barvy hledání souboru,... popř. zobrazují výsledky ve formátovaném tvaru (tabulky) do této skupiny patří: JFileChooser (výběr souboru), JColorChooser (výběr barvy) JTree (Strom) JTable (Tabulka) Formuláře JFrame v praxi je vhodné pracovat se třídou odvozenou od třídy JFrame, ve které můžeme s jednotlivými komponentami a jejich parametry efektivněji manipulovat tento postup umožňuje oddělit od sebe grafické a aplikační rozhraní aplikace, v praxi je velmi často používán nejprve se pokusíme vytvořit formulář a zobrazit ho na obrazovce pomocí třídy Okno Příklad 1: Vytvoření jednoduchého okna: public Okno() { ve třídě Main vytvoříme instanci třídy Okno public class Main { public static void main (String[] args) { Okno o = new Okno(); o.setvisible(true); volání metody o.setvisible(true) se postará o zviditelnění okna 2010-11-11 GUI - úvod 3/8

z takto vzniklého okna bude vidět pouze jeho titulek, musíme nastavit jeho rozměry formuláři nastavíme jeho šířku a výšku prostřednictvím metody: setdimension(int width, int height) nebo setsize(int width, int height) hodnoty jsou uváděny v pixelech prostřednictvím metody settitle(string title) zadáme titulek. můžeme nastavit přímo v konstruktoru Okna: Příklad 2: Nastavení parametrů okna: public Okno() { this.setsize(640, 480); this.settitle("moje okno"); this.setvisible(true); okno však při vypnutí prostřednictvím křížku zmizí, aplikace však běží dále do programu musíme začlenit kód zajišťující ukončení programu při zavření okna slouží k tomu metoda setdefaultcloseoperation(int o), která by měla být volána ihned po vytvoření instance oknu dále nastavíme metodou setlocation(int x. int y) polohu jeho levého horního rohu: Příklad 3: Dokážeme zavřením okna zastavit běh programu: public Okno() { this.setsize(640, 480); this.settitle("moje okno"); this.setlocation(100,100); this.setdefaultcloseoperation(jframe.exit_on_close); this.setvisible(true); Vlastnosti komponent pro získání vlastností komponent či jejich nastavování používáme metody zvané gettery a settery: Size Title Name Font Visible Location... vzniknou tak metody 2010-11-11 GUI - úvod 4/8

getsize(), gettitle(), getname(), getfont(), getlocation()... setsize(400,500), settitle("moje okno"), setname("jméno"), setfont(...), setlocation(100,100) veškerá nastavení je nutné provést před tím, než bude okno zobrazeno fokus = zaměření komponenty v každém okamžiku je jedna z komponent nacházejících se na formuláři aktivní, říkáme o ní, že je zaměřená (tj.má fokus) tento stav se projeví grafickým zvýrazněním komponenty zaměřená komponenta může reagovat i na vstup z klávesnice (např. klávesové zkratky). Nastavení vzhledu komponent každému formuláři ale i ostatním komponentám umístěným na něm můžeme nastavit různý vzhled, tzv. look and feel komponenty v Javě jsou tedy skinovatelné existuje velké množství různých skinů, které jsou volně dostupné na Internetu, velikosti, tvary, barvy jednotlivých komponent mohou být různé pro správu vzhledů používáme statickou třídu UIManager, kterou je nutno importovat: import javax.swing.uimanager; nejčastěji používanou metodou je metoda setlookandfeel(), které umožňují nastavit vzhled aplikace kód je obalen v sekvenci try-catch, jedná se o synchronní výjimku k dispozici jsou dvě základní varianty: getcrossplatformlookandfeelclassname(): aplikace bude mít stejný vzhled nezávisle na operačním systému, na kterém běží, jedná se o výchozí variantu getsystemlookandfeelclassname(): aplikace bude mít vzhled obvyklý v daném operačním systému. Na platformě Windows WindowsLookAndFeel a na platformě Linux/Unix MotifLookAndFeel. Ve většině případů je vhodnější použít tuto variantu. Nastavení look and feel metodou setlookandfeel musí být provedeno před zobrazením formuláře další podrobnosti o možnostech nastavování vzhledu komponent lze nalézt v dokumentaci: http://java.sun.com/docs/books/tutorial/uiswing/lookandfeel/plaf.html Příklad 4: Nastavení vzhledu okna: import javax.swing.uimanager; public static void main (String [] args) { try { UIManager.setLookAndFeel(UIManager. getsystemlookandfeelclassname()); 2010-11-11 GUI - úvod 5/8

catch (Exception e) { e.printstacktrace(); new Okno(); Ikona programu na formuláři je možno zobrazit i ikonu programu představovanou obrázkem v některém z formátů: JPG, GIF, PNG lze si tak vytvářet i ikony vlastní standardní velikost ikony je 16x16 pixelů k těmto operacím slouží třída ImageIcon v konstruktoru instance třídy zadáme cestu k obrázku metodou seticonimage(image i) ho nastavíme jako ikonu ImageIcon i = ew ImageIcon("C:\\Tomas\\ikona.png"); this.seticonimage(i.getimage() Přidávání dalších komponent na formulář každá top-level komponenta má zvláštní kontejner zvaný ContentPane obsahující všechny grafické komponenty ležící na top level komponentě tvoří ho pouze část komponenty, pouze vnitřní část formuláře bez titulkového pruhu a menu obsah content pane je dostupný prostřednictvím metody getcontentpane() do kontejneru content pane můžeme další komponenty přidávat metodou add() grafické komponenty jsou na top-level komponenty přidávány hierarchicky, vytvářejí stromovou strukturu kořen stromu vytváří top-level komponenta grafické komponenty používají vlastní souřadný systém, jeho počátek je v levém horním rohu okna, osa y směřuje dolů, osa x vpravo hodnoty souřadnic jsou zadávány v pixelech velikost souřadnice x je dána hodnotou šířky komponenty, můžeme ji zjistit metodou getwidth() velikost souřadnice je dána výškou komponenty, můžeme ji zjistit metodou getheight() pokud chceme používat češtinu a chceme ji mít správně, ukládáme s kódováním UTF-8 a překládáme s přepínačem -encoding UTF-8 Layout managery správci uspořádání 2010-11-11 GUI - úvod 6/8

na různých platformách jsou velikosti grafických komponent různé, layout managery zajistí, že při přechodu mezi platformami budou velikosti a poloha jednotlivých komponent automaticky přepočteny a aplikace bude vypadat neustále hezky :-) v Javě se s layout managery pracuje prostřednictvím tříd. Pro nastavení uspořádání komponent používáme příkaz setlayout(layoutmanager manager). pro práci s layout managerem je nutno importovat balík java.awt.* na formulář přidáme komponentu, tlačítko JButton a to nejprve bez využití layout manageru. JButton but=new JButton("AHOJ"); metodou getcontnentpane() lze získat kontejner představující plochu okna tlačítko přidáme metodou add(component c) : o.getcontentpane.add(but); Příklad 5: Přidání tlačítka do obsahu okna: import java.awt.*; public Okno() { this.setsize(640, 480); this.settitle("moje okno"); this.setlocation(100,100); Container obsah = this.getcontentpane(); JButton but = new JButton("AHOJ"); obsah.add(but); this.setdefaultcloseoperation(jframe.exit_on_close); this.setvisible(true); tlačítko bude zabírat celou plochu okna, proto postup zopakujeme s využitím layout manageru vytvoříme novou proměnou typu FlowLayout obsahující odkaz na instanci správce rozložení komponent: FlowLayout f=new FlowLayout(); metodou setlayout(layoutmanager lm) nastavíme pro zvolenou komponentu správce rozložení oba kroky lze spojit do jednoho: this.setlayout(new FlowLayout()); přeložíme-li a spustíme vytvořený program, velikost tlačítka již bude normální vytvoříme více tlačítek, která pojmenujeme tlačítka jsou v každé řadě vycentrovány vzhledem ke komponentě, na které leží celý obsah konstruktoru ještě můžeme rozdělit do tří metod: inicilizaceokna() obsahokna() zviditelněniokna() 2010-11-11 GUI - úvod 7/8

Příklad 6: Použití správce uspořádání a rozdělení konstruktoru do 3 metod: import java.awt.*; Container obsah; JButton but1, but2; JLabel lab; JTextField text; public Okno() { inicializaceokna(); obsahokna(); zviditelneniokna(); public void inicializaceokna() { this.setsize(300, 200); this.settitle("moje první okno"); this.setlocation(100,100); this.setlayout(new FlowLayout()); obsah = this.getcontentpane(); public void obsahokna() { but1 = new JButton("ahoj"); but2 = new JButton("nazdar"); lab = new JLabel("tady se to změní"); obsah.add(but1); obsah.add(lab); obsah.add(but2); public void zviditelneniokna() { this.setdefaultcloseoperation(jframe.exit_on_close); this.setvisible(true); 2010-11-11 GUI - úvod 8/8