GUI. Systémová integrace pro desktopové aplikace

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

JAVA. Odbočka: Návrhové vzory (Design patterns)

GUI. Systémová integrace pro desktopové aplikace

Swing. Vlastní kreslení

JAVA. Odbočka: Návrhové vzory (Design patterns)

JAVA. HTTP API (klient)

Logování. Log4J. Základní pojmy používané v log4j

Logování zaznamenávání informací o průběhu programu, ladících a chybových informací

Programátorská příručka

Iterator & for cyklus

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.

Programování v jazyku Java Dokumentace, logování, regex

UJO Framework. revoluční architektura beans. verze

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

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

Podmínky na zápočet. Java, zimní semestr

Java Výjimky Java, zimní semestr

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

JAVA JavaBeans Java, letní semestr 2018

JAVA JavaBeans Java, letní semestr

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.

RMI Remote Method Invocation

JAVA Unit testing Java, zimní semestr

Práce se soubory v Javě

Rozhraní SAX, SAX vs. SAX2. Jaroslav Ciml

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

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

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

JAVA. Krátce o Reflection API

Vláknové programování část V

Webová prezentační aplikace

Java Enum Java, zimní semestr ,2017 1

2017 CARAT "New design"

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

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

OMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC

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

Generické programování

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

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

Struktura třídy, operátory, jednoduché algoritmy, junit. Programování II 2. cvičení Alena Buchalcevová

JAVA Moduly Java, letní semestr 2018

20. Projekt Domácí mediotéka

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

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

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

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

typová konverze typová inference

Jazyk C# (seminář 6)

Chain of responsibility

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

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

Uživatelská příručka Autor: Martin Fiala

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

Technologie JavaBeans

TERMÍNY ZKOUŠEK VYPISOVÁNÍ (verze 2)

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ

JAVA. Java Management Extensions JMX

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.

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

JAVA. Další jazyky kompilovatelné do Java byte-code

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

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

Vývoj multiplatformní aplikace v Qt

Java Řetězce Java, zimní semestr

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

CGMesky. Rozšiřující služba

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

Výjimky a ošetřování chyb v PHP. Who is General Failure and why is he reading my disk?!

Seminář Java IV p.1/38

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

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

Synchronizace kontaktů z ESO9 do MS Outlook

Návod k použití softwaru Solar Viewer 3D

Algoritmizace a programování

Dědičnost (inheritance)

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

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

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

Stručný manuál pro webový editor. Ukládáni základních informací, tvorba menu

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

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

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

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

Typ 2 - připojení prostřednictvím kódu nativního klienta pro přístup k síti

Vytváření a použití knihoven tříd

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

PB161 Programování v jazyce C++ Přednáška 8

TIA Selection Tool manuál pro použití

<surface name="pozadi" file="obrazky/pozadi/pozadi.png"/> ****************************************************************************

Připojení ke vzdálené aplikaci Target 2100

PREPROCESOR POKRAČOVÁNÍ

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

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

4. ZÁKLADNÍ POJMY Z OBJEKTOVĚ ORIENTOVANÉHO PROGRAMOVÁNÍ

Programování v Javě I. Únor 2009

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

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

Programování v jazyku C# II. 9.kapitola

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

Transkript:

GUI Systémová integrace pro desktopové aplikace 1

java.awt.desktop systémová integrace desktopových aplikací static boolean isdesktopsupported() test zda je integrace k dispozici static Desktop getdesktop() vrátí instanci void browse(uri uri) otevře uri v defaultním prohlížeči void edit(file file) otevře soubor v defaultním editoru pro daný typ souboru void mail(uri mailtouri) otevře defaultní mailový klient void open(file file) otevře soubor v defaultní aplikaci pro daný typ void print(file file) tisk souboru 2

java.awt.desktop boolean issupported(desktop.action action) test, co je podporováno Desktop.Action enum hodnoty BROWSE EDIT MAIL OPEN PRINT 3

java.awt.systemtray reprezentuje systémový tray př. TrayIcon trayicon = null; if (SystemTray.isSupported()) { SystemTray tray = SystemTray.getSystemTray(); Image image =... ActionListener listener = new ActionListener() { public void actionperformed(actionevent e) {... } }; PopupMenu popup = new PopupMenu(); popup.add(...); trayicon = new TrayIcon(image, "Tray Demo", popup); trayicon.addactionlistener(listener); tray.add(trayicon); } 4

java.awt.systemtray pravý stisk tlačítka na ikonu zobrazí menu levý stisk generuje action event jedna aplikace může přidat libovolné množství ikon metody static boolean issupported() void add(trayicon icon) void remove(trayicon icon) odebere ikonu z traye při ukončení aplikace jsou ikony odebrány automaticky TrayIcon[] gettrayicons() vrací všechny tray ikony aplikace 5

Swing Různé... 6

JToolBar lišta s tlačítky lze přetáhnout na jiné místo lze i vytrhnout 7

JSplitPane zobrazení 2 komponent vedle sebe pod sebe oddělovač mezi komponentami lze posouvat 8

Actions oddělení komponenty a její funkce pro tlačítka, menu,... stejná akce přiřazená k více komponentám Action interface lze nastavit zobrazovaný text ikonu popis klávesovou zkratku action listener... AbstractAction třída implementující interface Action typicky se od ní dědí 9

JTable tabulka konstruktory (některé) JTable(Object[][] rowdata, Object[] columnnames) JTable(TableModel dm) 10

TableModel void addtablemodellistener(tablemodellistener l) Class<?> getcolumnclass(int columnindex) int getcolumncount() String getcolumnname(int columnindex) int getrowcount() Object getvalueat(int rowindex, int columnindex) boolean iscelleditable(int rowindex, int columnindex) void removetablemodellistener(tablemodellistener l) void setvalueat(object avalue, int rowindex, int columnindex) 11

AbstractTableModel předpřipravená implementace modelu stačí naimplementovat pouze metody public int getcolumncount() public int getrowcount() public Object getvalueat(int row, int col) 12

JColorChooser výběr barvy lze použít jako dialog jako komponenta 13

JDesktopPane okna v okně JDesktopPane plocha JInternalFrame vnitřní okno 14

JAVA java.util.logging 15

Přehled API pro vytváření logů aplikace používá Logger metody log() Logger vytváří LogRecord a předává ho Handleru Handler zajišťuje vypisování logů na obrazovku, do souboru,... Filter filtrování logovaných zpráv Formatter formátování zpráv LogManager přímo se (obvykle) nepoužívá jeden globální objekt, spravuje loggery 16

Logger hierarchická struktura - strom logger posílá zprávy i do předka názvy loggerů by měly kopírovat hierarchii tříd několik úrovní zpráv java.util.logging.level SEVER WARNING INFO CONFIG FINE FINER FINEST lze určit, od které úrovně výše se budou zprávy logovat (nižší se budou zahazovat) 17

Handler několik předdefinovaných handlerů Handler abstraktní třída, ostatní od ní dědí StreamHandler do OutputStream ConsoleHandler do System.err FileHandler do souboru jeden nebo "rotování" souboru SocketHander po síti MemoryHadler do bufferu vlastní handler podědit od Handler 18

Formatter SimpleFormatter text "human-readable" XMLFormatter xml 19

Logování metody na Logger podle levelu sever(string msg) warning(string msg)... obecné log(level l, String msg) log(level l, String msg, Object o) log(level l, String msg, Throwable t) odkud logováno logp(level l, String sourceclass, String sourcemethod, String msg)... 20

Příklad static Logger logger = Logger.getLogger("cz.cuni.mff.java.logging.TestLog");... logger.info("doing stuff"); try{... } catch (Throwable ex){ logger.log(level.warning, "exception occured",ex); } logger.info("done"); 21

Externí konfigurace pomocí properties java.util.logging.config.file obvyklá struktura pro properties (jmeno=hodnota) <logger>.hadlers = seznam handlerů pro daný logger <logger>.level = level pro daný logger... bez úvodního jména kořenový logger java.util.logging.config.class třída zodpovědná za načítání konfigurace předchozí property pak nemusí mít žádný význam 22

Java, zimní semestr Verze prezentace 2015 J13.cz.2015.01 Tato prezentace podléhá licenci Creative Commons Uveďte autora-neužívejte komerčně 4.0 Mezinárodní License. 23