Programovací jazyk Java. Grafická prostředí v Javě. Přednáška 4 AWT. Základy práce s GUI

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

Download "Programovací jazyk Java. Grafická prostředí v Javě. Přednáška 4 AWT. Základy práce s GUI"

Transkript

1 Programovací jazyk Java Přednáška 4 Základy práce s GUI Grafická prostředí v Javě Grafická prostředí jsou v Javě čtyři základní: nejstarší AWT (Abstract Windowing Toolkit), novější JFC Swing (Java Foundation Classes), SWT (Standard Widget Toolkit) a nejnovější JavaFX. AWT Součástí Java Core API od verze 1.0, Malé množství komponent, Omezená přenositelnost závislost na odpovídajících objektech poskytovaných v OS. Vzhled definovaný podle operačního systému AWT ve Windows Figure 1: 1

2 Figure 2: AWT v Linuxu SWT SWT je produktem IBM, je třeba doinstalovat příslušné knihovny, je závislý na platformě. AWT a SWT využívá nativních služeb daného operačního systému (vzhled komponent) a na každém OS vypadá jinak, ale zase tak, jak jsou jeho uživatelé zvyklí. Nejznámější použitá je v IDE Elipse Swing součástí Java Core API od verze 1.2, stejný princip použití jako AWT, mnoho tříd Swingu jsou podtřídami tříd z AWT, má komponenty napsané přímo v Javě, takže na všech platformách Swing aplikace vypadají stejně. Lze to však změnit pomocí tzv. LookAndFeel, tzn. metodami třídy javax.swing.uimanager (např. UIManager.getSystemLookAndFeelClassName()). bohatý výběr komponent stromy, seznamy, dialogy, javax.swing základní komponenty Swing GUI, javax.swing.event událostní komponenty Swing GUI. V současnosti se využívá v podstatě již jen Swing a SWT. Porovnání grafických prostředí Javy (česky) např. zde. 2

3 Figure 3: 3

4 Figure 4: 4

5 Základní vzhled Swing aplikace JavaFX Nejnovější, nejdřív součástí samostatného projektu (distribuce, jako například Java SE, Java EE,... ). Od verze Javy 8 oficiální náhrada technologie Swing. JavaFX je moderní framework pro tvorbu bohatých okenních aplikací. JavaFX přináší podporu obrázků, videa, hudby, grafů, CSS stylů Snadné vytvoření efektních aplikací Zároveň je kladen důraz na jednoduchost tvorby, všechny zmiňované věci jsou v JavaFX v základu. JavaFX se hodí jak pro desktopové aplikace, tak pro webové applety nebo mobilní aplikace. Je možné ji také použit pro tvorbu 2D i 3D grafiky a různých animací V JavaFX je možné vyvíjet podobně jako ve starším Swingu, tedy tak, že tvoříte instance jednotlivých formulářových prvků (tlačítko, textové pole). Ty poté vkládáte do tzv. layoutů, což jsou vlastně kontejnery na formulářové komponenty. Je možné ale FXML jazyk na definic vzhledu, podobně jako například Layoutu na platformě android. Online tutoriál: Okenní aplikace v Java FX Základní vzhled JavaFX aplikace Vzhled JavaFX aplikace s použitím stylů Java Scene Builder Dobrou zprávou je, že FXML nemusíme psát ručně, existuje totiž k dispozici grafický designer. Ten není přímo v IDE, ale jedná se o samostatnou aplikaci, kterou pod názvem JavaFX Scene Builder stáhnete zde: JavaSceneBuilder. Jednoduchá JavaFX aplikace Hello World Vytvoření jednoduché aplikace jen pomocí kódu, bez FXML = základní principy. Aplikace JavaFX je reprezentována jednou základní třídou, která je potomkem javafx.application.application. 5

6 Figure 5: Figure 6: 6

7 Figure 7: její základní metody, se kterými pracujeme, jsou: - launch(args): Slouží se spouštění JavaFX části aplikace public class HelloWorld extends Application { public static void main(string[] args) { launch(args); public void start(stage primarystage): která se provolání při startu aplikace. V této metodě probíhá inicializace public void start(stage primarystage) { primarystage.settitle("hello World!"); Button btn = new Button(); btn.settext("say 'Hello World'"); btn.setonaction(new EventHandler<ActionEvent>() { ); public void handle(actionevent event) { System.out.println("Hello World!"); StackPane root = new StackPane(); root.getchildren().add(btn); primarystage.setscene(new Scene(root, 300, 250)); primarystage.show(); 7

8 Vysvětlení základních pojmů Třída Stage: objekt v jednoduchosti představující jedno okno aplikace. Třída Button: objekt představující tlačítko, zobrazující nějaký text, metoda setonaction() nastavuje událost, která se má stát v případě stisku tlačítka, třída EventHandler s metodou handle(actionevent event) představují onu událost, konstrukce <ActionEvent> je generický typ, viz další přednášky, parametr metodu setonaction() je takzvaná anonymní třída. Třída StackPane: (Pane) je panel na kterém se umísťují grafické objekty. Figure 8: JavaFX aplikace Login form Vytvoříme jednoduchý formulář pro přihlášení: Základ je opět třída Login.java, která je potomkem javafx.application.application a obsahuje metody main(...) a start(...). 8

9 Figure 9: Nastavení rozložení prvků Layouty se starají o rozložení grafických prvků na panelu. V tomto příkladu použijeme GridPane. GridPane grid = new GridPane(); grid.setalignment(pos.center); grid.sethgap(10); grid.setvgap(10); grid.setpadding(new Insets(25, 25, 25, 25)); Scene scene = new Scene(grid, 300, 275); primarystage.setscene(scene); Tento GridPane pracuje jako tabulka, do jejich buněk umisťujeme prvky. Obdoba http tabulce grid. Přidání popisů a textových prvků Prvky přidáváme do tabulky gridu a musíme určit jejich souřadnici (buňku kam patří) 9

10 Text scenetitle = new Text("Welcome"); scenetitle.setfont(font.font("tahoma", FontWeight.NORMAL, 20)); grid.add(scenetitle, 0, 0, 2, 1); Label username = new Label("User Name:"); grid.add(username, 0, 1); TextField usertextfield = new TextField(); grid.add(usertextfield, 1, 1); Label pw = new Label("Password:"); grid.add(pw, 0, 2); PasswordField pwbox = new PasswordField(); grid.add(pwbox, 1, 2); Výsledné rozmístění prvků je následující: Figure 10: 10

11 Tlačítko, textový prvek a zpráva události Tlačítko Button btn = new Button("Sign in"); HBox hbbtn = new HBox(10); hbbtn.setalignment(pos.bottom_right); hbbtn.getchildren().add(btn); grid.add(hbbtn, 1, 4); Textového prvku pro zprávu uživateli final Text actiontarget = new Text(); grid.add(actiontarget, 1, 6); Zpracování události btn.setonaction(new EventHandler<ActionEvent>() { ); public void handle(actionevent e) { actiontarget.setfill(color.firebrick); actiontarget.settext("sign in button pressed"); Seznámení s CSS styly Naším cílem bude vytvořit hezčí formulář Figure 11: 11

12 Připojení Style sheets ke scéně V kódu m metodě public void start(stage primarystage) Scene scene = new Scene(grid, 300, 275); primarystage.setscene(scene); scene.getstylesheets().add("login.css"); primarystage.show(); a dále vytvoříme do adresáře src/main/resources: 1. soubor Login.css 2. obrazovek pozadí background.jpg. Nastylováni prvků v Login.css Pozadí (root panel).root { -fx-background-image: url("background.jpg"); Popisky (Label).label { -fx-font-size: 12px; -fx-font-weight: bold; -fx-text-fill: #333333; -fx-effect: dropshadow( gaussian, rgba(255,255,255,0.5), 0,0,0,1 ); Nastylováni konkrétní prvků Nejprve odstraníme staré nastavení stylů přímo v kódu, řádky: scenetitle.setfont(font.font( Tahoma, FontWeight.NORMAL, 20)); actiontarget.setfill(color.firebrick); a nahradíme je definic ID prvku: scenetitle.setid("welcome-text"); actiontarget.setid("actiontarget"); na závěr vytvoříme pro prvky styl: #welcome-text { -fx-font-size: 32px; -fx-font-family: "Arial Black"; 12

13 -fx-fill: #818181; -fx-effect: innershadow( three-pass-box, rgba(0,0,0,0.7), 6, 0.0, 0, 2 ); #actiontarget { -fx-fill: FIREBRICK; -fx-font-weight: bold; -fx-effect: dropshadow( gaussian, rgba(255,255,255,0.5), 0,0,0,1 ); Posledním krokem je styl pro tlačítko.button { -fx-text-fill: white; -fx-font-family: "Arial Narrow"; -fx-font-weight: bold; -fx-background-color: linear-gradient(#61a2b1, #2A5058); -fx-effect: dropshadow( three-pass-box, rgba(0,0,0,0.6), 5, 0.0, 0, 1 );.button:hover { -fx-background-color: linear-gradient(#2a5058, #61a2b1); Použití FXML FXML je odvozený z XML. Slouží pro návrh prezentační části aplikace. Java se zde inspiruje a přenáší principy HTML a CSS do desktopových aplikací. Podobný přístup je obecně rozšířen například v C#, Android,... Propojení Scene s konkrétním FXML uděláme nejsnadněji v metodě public void start(stage stage) throws Exception { Parent root = FXMLLoader.load(ClassLoader.getResource("fxml/Login.fxml")); Scene scene = new Scene(root, 300, 275); stage.settitle("fxml Welcome"); stage.setscene(scene); stage.show(); 13

14 Použití prvků v FXML souboru Pokud chceme použít nějaký prvek (TextField, Label, Button), musíme v FXML deklarovat import podobně jako ve třídě. <?xml version="1.0" encoding="utf-8"?> <?import java.net.*?> <?import javafx.geometry.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.text.*?> Můžeme použít import s *, což znamená použít všechny pvky v balíčku, nebo <?xml version="1.0" encoding="utf-8"?> <?import javafx.scene.layout.columnconstraints?> <?import javafx.scene.layout.gridpane?> <?import javafx.scene.layout.rowconstraints?> Prvky FXML jsou umístěny ve stejných balíčcích a mají stejné názvy jako jejich Java protějšky. Definice FXML pro Login formulář <GridPane alignment="center" hgap="10" vgap="10"> <padding> <Insets top="25" right="25" bottom="10" left="25"/> </padding> <Text text="welcome" GridPane.columnIndex="0" GridPane.rowIndex="0" GridPane.columnSpan="2"/> <Label text="user Name:" GridPane.columnIndex="0" GridPane.rowIndex="1"/> <TextField GridPane.columnIndex="1" GridPane.rowIndex="1"/> <Label text="password:" GridPane.columnIndex="0" GridPane.rowIndex="2"/> <PasswordField GridPane.columnIndex="1" GridPane.rowIndex="2"/> <HBox spacing="10" alignment="bottom_right" GridPane.columnIndex="1" GridPane.rowIndex="4"> <Button text="sign In"/> 14

15 </HBox> <Text GridPane.columnIndex="1" GridPane.rowIndex="6"/> </GridPane> Nastylováni FXML formuláře K propojení FXML dokumentu se stylem musíme: 1. Říci že chceme styl použít, a jaký: <GridPane stylesheets="login.css" Dále je možné přiřadit elementům css class: <GridPane styleclass="root" Dále je možné přiřadit elementům css id: <Text id="welcome-text" Eventuálně je možné použít styl přímo <Label style="-fx-font: NORMAL 20 Tahoma;... Propojení formuláře s Java třídou K FXML dokumentu je možné připojit takzvaný Controller. V FXML je pro prvky sloužící k propojení s třídami použit Namespace fx. Namespace a controller se definují v kořenovém elementu FXML dokumentu. <GridPane xmlns:fx=" fx:controller="cz.mendelu.pjj.javafx.logincontroller" alignment="center" hgap="10" vgap="10"> Controller je obyčejná jjava třída, využíváme v injection pro získání grafických objektů. <Text fx:id="actiontarget" GridPane.columnIndex="1" GridPane.rowIndex="6"/> 15

16 public class LoginController private Text actiontarget; Reakce na události ve formuláři Pokud chceme reagovat na událost, použijeme ve FXML příslušný atribut: on*="#metoda" <Button text="sign In" onaction="#handlesubmitbuttonaction"/> V Controlleru pak vytvoříme příslušnou metodu a se správnými parametry. public class LoginController private Text protected void handlesubmitbuttonaction(actionevent event) { actiontarget.settext("sign in button pressed"); Skriptování Někdy potřebujeme jen aby dva různé prvky formuláře na sebe reagovaly. Například pokud chceme povolit kliknout na tlačítko jen když jsou vyplněny obě pole. Pokud nechceme touto funkcionalitou zatěžovat Controller, můžeme použít jednoduchý script přímo v FXML souboru. FXML lze scriptovat v JavaScript, Groovy, Jython a Clojure. 1. Musíme script povolit <?language javascript?> 2. Přiřadím id TextFild a Button prvkům a zakáži používat tlačítko <TextField fx:id="usernamefield"... <PasswordField fx:id="passwordfield"... <Button fx:id="signinbutton" text="sign In" disable="true"... 16

17 3. Vytvořím funkci <fx:script> function editaction() { signinbutton.setdisable(usernamefield.text.isempty() passwordfield.text.isempty()); </fx:script> 4. Funkci zaregistruji k události <TextField fx:id="usernamefield" * onkeyreleased="editaction(event);" GridPane.columnIndex="1" GridPane.rowIndex="1"/> <PasswordField fx:id="passwordfield" * onkeyreleased="editaction(event);" GridPane.columnIndex="1" GridPane.rowIndex="2"/> Binding dat (property) JavaFX má mechanizmus který automaticky aktualizuje data mezi prvky GUI a/nebo modelem. Příklad 1. Roztahování položek v okně Toto je spíš demonstrační ruční varianta, používejte správné Layouts! public class LoginController implements Initializable private GridPane private TextField public void initialize(url location, ResourceBundle resources) { usernamefield.prefwidthproperty().bind(root.widthproperty()); Implementací rozhraní Initializable můžeme reagovat na vytvoření Controlleru. Příklad 2. Roztahování položek v okně Nejprve vytvoříme model, což bude prezentovat třída User 17

18 public class User { private StringProperty username = new SimpleStringProperty(); public User() { username.addlistener(new ChangeListener<String>() public void changed(observablevalue<? extends String> observable, String oldvalue, String newvalue) { ); System.out.format("New username: %s\n", newvalue); public String getusername() { return username.get(); public StringProperty usernameproperty() { return username; public void setusername(string username) { this.username.set(username); Vytvořím instanci ve třídě Login public static final User USER = new User(); A propojím s GUI prvkem pomocí public void initialize(url location, ResourceBundle resources) { usernamefield.prefwidthproperty().bind(root.widthproperty()); * usernamefield.textproperty() *.bindbidirectional(login.user.usernameproperty()); Do main metody přidáme vlákno umožňují editaci jména. public static void main(string[] args) { new Thread(() -> { try (BufferedReader in = new BufferedReader( new InputStreamReader(System.in))) { String name = null; while ((name = in.readline())!= null) { USER.userNameProperty().setValue(name); catch (IOException e) { 18

19 e.printstacktrace(); ).start(); launch(args); Přehled základních prvků GUI Kompletní přehled základních prvků zde Existují knihovny s dalšími prvky například: ControlsFX, JFXtras. Label Figure 12: Slouží k zobrazování textu. Můžou na něj být aplikovány různé vizuální efekty. Minimální uživatelská interakce. Button Prvky reagující na klik uživatele. Stylují se podle pozice kurzoru. Radio Button Slouží na výběr mezi několika možnostmi. 19

20 Figure 13: Figure 14: 20

21 Seskupují se do skupin: ToggleGroup. final ToggleGroup group = new ToggleGroup(); RadioButton rb1 = new RadioButton("Home"); rb1.settogglegroup(group); rb1.setselected(true); RadioButton rb2 = new RadioButton("Calendar"); rb2.settogglegroup(group); RadioButton rb3 = new RadioButton("Contacts"); rb3.settogglegroup(group); Toggle Button Podobné s Radio Button. Figure 15: Checkbox Prvek poskytující boolean hodnotu. CheckBox cb1 = new CheckBox(); cb1.settext("first"); cb1.setselected(true); Choice Box Umožňuje uživateli zvolit jednu z nabízených možnost. 21

22 Figure 16: Figure 17: Většinou se jedná o textové volby definované polem nebo kolekcí. ChoiceBox cb = new ChoiceBox(FXCollections.observableArrayList( "First", "Second", "Third")); Text Field Nejedná se jen o hloupý prvek pro zadávání textu, ale dovede zobrazovat i nápovědu a chyby. 22

23 Figure 18: Scroll Bar a Scroll Pane Scroll Bar je posuvnuk pro nastavení číselné hodnoty. Scroll Pane je prvek umožňující posouvat jiné prvky. List View Zobrazení seznamu hodnot, podobně jako Choice Box. Dle nastavení je možné vypírat jeden nebo i více prvků. ListView<String> list = new ListView<>(); ObservableList<String> items =FXCollections.observableArrayList ( "Single", 23

24 Figure 19: "Double", "Suite", "Family App"); list.setitems(items); Table View Tree View Combo Box Umožňuje uživateli zvolit jednu položky z textové nabídky. ObservableList<String> options = FXCollections.observableArrayList( "Option 1", "Option 2", "Option 3" ); final ComboBox combobox = new ComboBox(options); Separator Odděluje prvky GUI graficky od sebe. Má jen vizuální význam. Slider Progress Bar and Progress Indicator Indikace stavu postupu v nějakém procesu. Eventuálně se používá pouze jako indikátor, že se provádí výpočet. 24

25 Figure 20: 25

26 Figure 21: Figure 22: 26

27 Figure 23: Figure 24: Figure 25: 27

28 ProgressBar pb = new ProgressBar(0.6); ProgressIndicator pi = new ProgressIndicator(0.6); Tooltip Figure 26: Nápověda nebo validace u prvků. final PasswordField pf = new PasswordField(); final Tooltip tooltip = new Tooltip(); tooltip.settext( "\nyour password must be\n" + "at least 8 characters in length\n" + ); pf.settooltip(tooltip); Image image = new Image( getclass().getresourceasstream("warn.png") ); tooltip.setgraphic(new ImageView(image)); Titled Pane and Accordion Figure 27: 28

29 Rozbalující prvek zobrazující (obsahující) další prvky. //using a two-parameter constructor TitledPane tp = new TitledPane("My Titled Pane", new Button("Button")); //applying methods TitledPane tp = new TitledPane(); tp.settext("my Titled Pane"); tp.setcontent(new Button("Button")); Menu Figure 28: JavaFX umožňuje vytvářet různě koplikovaná menu MenuItem clear = new MenuItem("Clear"); clear.setaccelerator(keycombination.keycombination("ctrl+x")); clear.setonaction((actionevent t) -> { vbox.setvisible(false); ); Date Picker Prvek pro zadávání data a času Pagination Control JavaFX umožňuje i stránkování obsahu. Canvas Canvas je prvek sloužící ke kreslení vlastní grafiky. 29

30 Figure 29: Figure 30: 30

31 Figure public void start(stage primarystage) { primarystage.settitle("drawing Operations Test"); Group root = new Group(); Canvas canvas = new Canvas(300, 250); GraphicsContext gc = canvas.getgraphicscontext2d(); gc.setfill(color.green); gc.setstroke(color.blue); gc.setlinewidth(5); gc.strokeline(40, 10, 10, 40); gc.filloval(10, 60, 30, 30); gc.strokeoval(60, 60, 30, 30); root.getchildren().add(canvas); primarystage.setscene(new Scene(root)); primarystage.show(); Rozložení prvků: Layouts Grafické prvky na scéně vytvářejí ve stromové hierarchii listy. Uzly (tedy jejich nadřazené prvky) tvoří kontejnery s layouty, které rozhodují, kde se jaký prvek zobrazí a jakou bude mít velikost. BorderPane BorderPane border = new BorderPane(); HBox hbox = addhbox() border.settop(hbox); border.setleft(addvbox()); 31

32 Figure 32: addstackpane(hbox); // Add stack to HBox in top region border.setcenter(addgridpane()); border.setright(addflowpane()); VBox / HBox HBox hbox = new HBox(); hbox.setpadding(new Insets(15, 12, 15, 12)); hbox.setspacing(10); hbox.setstyle("-fx-background-color: #336699;"); Button buttoncurrent = new Button("Current"); buttoncurrent.setprefsize(100, 20); Button buttonprojected = new Button("Projected"); 32

33 buttonprojected.setprefsize(100, 20); hbox.getchildren().addall(buttoncurrent, buttonprojected); StackPane Figure 33: Velmi užitečný panel, zobrazí vždy právě jednu svoji komponentu. StackPane stack = new StackPane(); Rectangle helpicon = new Rectangle(30.0, 25.0); helpicon.setfill(new LinearGradient(0,0,0,1, true, CycleMethod.NO_CYCLE, new Stop[]{ new Stop(0,Color.web("#4977A3")), new Stop(0.5, Color.web("#B0C6DA")), new Stop(1,Color.web("#9CB6CF")),)); helpicon.setstroke(color.web("#d0e6fa")); helpicon.setarcheight(3.5); helpicon.setarcwidth(3.5); Text helptext = new Text("?"); helptext.setfont(font.font("verdana", FontWeight.BOLD, 18)); helptext.setfill(color.white); helptext.setstroke(color.web("#7080a0")); stack.getchildren().addall(helpicon, helptext); stack.setalignment(pos.center_right); // Right-justify nodes in stack StackPane.setMargin(helpText, new Insets(0, 10, 0, 0)); // Center "?" hb.getchildren().add(stack); HBox.setHgrow(stack, Priority.ALWAYS); // Add stack pane to HBox object // Give stack any extra space GridPane FlowPane AnchorPane AnchorPane anchorpane = new AnchorPane(); Button buttonsave = new Button("Save"); 33

34 Figure 34: Figure 35: 34

35 Figure 36: Button buttoncancel = new Button("Cancel"); HBox hb = new HBox(); hb.setpadding(new Insets(0, 10, 10, 10)); hb.setspacing(10); hb.getchildren().addall(buttonsave, buttoncancel); anchorpane.getchildren().addall(grid,hb); // Add grid from Example 1-5 AnchorPane.setBottomAnchor(hb, 8.0); AnchorPane.setRightAnchor(hb, 5.0); AnchorPane.setTopAnchor(grid, 10.0); Výsledné složení dohromady 3D grafika JavaFX umožňuje používat také 3D grafiku pro tvorbu GUI. Demo aplikace youtube Zdoj pro samostudiu

36 Figure 37: Děkuji za pozornost! 36

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

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

Více

GUI. Systémová integrace pro desktopové aplikace

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

Více

1. díl - Úvod do JavaFX

1. díl - Úvod do JavaFX 1. díl - Úvod do JavaFX JavaFX a Swing V Javě je spolu s JavaFX přítomný ještě starší okenní framework Swing. Oracle oznámil, že ho má JavaFX v budoucnu nahradit. Proto má nové aplikace smysl programovat

Více

Úvod do JavaFX RICHARD LIPKA

Úvod do JavaFX RICHARD LIPKA Úvod do JavaFX RICHARD LIPKA 26.2.2018 GUI a OS OS (jeho moduly) poskytuje funkce pro vytváření oken a základních GUI prvků Ve Windows Win32 / Win64 / WinCE API V OS X Cocoa, Quartz V Linuxu není v OS,

Více

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

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

Více

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

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

Více

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

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

Více

FXML, CSS RICHARD LIPKA

FXML, CSS RICHARD LIPKA FXML, CSS RICHARD LIPKA 23.4.2018 Novinky v JavaFX PreferenecssFX Podpora pro dialogy s nastavením aplikace (Eclipse-like, se stromem a hledáním na levé straně) Automatická tvorba vstupních prvků pro nastavení

Více

Programátorská příručka

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

Více

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

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

Více

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

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

Více

Jazyk C# (seminář 9)

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

Více

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

Bakalářská práce Návrhový modul pro výpočet pevnosti šroubovaných spojů

Bakalářská práce Návrhový modul pro výpočet pevnosti šroubovaných spojů Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky Bakalářská práce Návrhový modul pro výpočet pevnosti šroubovaných spojů Plzeň 2016 Jiří Hankovec Místo této

Více

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

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

Více

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

Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda Anotace sady: Úvod do objektově orientovaného programování, VY_32_INOVACE_PRG_OOP_01 Autor: Blanka Sadovská Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda Druh učebního materiálu:

Více

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

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

Více

PROGRAMOVÁNÍ PRO MS WINDOWS 1

PROGRAMOVÁNÍ PRO MS WINDOWS 1 Jazyk C# je moderní jazyk z rodiny jazyků podporovaných aplikačním prostředím.net. Cílem předmětu je seznámit posluchače s tímto objektovým jazykem, a s programováním aplikací pro MS Windows. V průběhu

Více

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

Programování v Javě I. Únor 2009 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

PROGRAMOVÁNÍ PRO MS WINDOWS 1

PROGRAMOVÁNÍ PRO MS WINDOWS 1 Cílem předmětu je seznámit posluchače s moderními prostředky pro tvorbu aplikací pro Windows jmenovitě s programovou platformou.net a programovacím jazykem C#. V průběhu budou vysvětlena následující témata:

Více

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

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

Více

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

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

Více

Algoritmizace a programování

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

Více

Programování v Javě I. Leden 2008

Programování v Javě I. Leden 2008 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

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

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

Více

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 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

Jazyk C# (seminář 6)

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

Více

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

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

Více

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

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

Více

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

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

Více

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

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

Více

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

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

Více

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

Java - Kresba. 2/28/11 1/8 Java - kresba Java - Kresba Základní entity a jejich kresba ve třídě Graphics nemůžeme nastavit linii, šířku a typ, z grafických atributů jí můžeme nastavit pouze barvu Linie (čára)... drawline(int x1, int y1, int x2,

Více

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

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

Více

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

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

Více

8. GRAFICKÉ UŽIVATELSKÉ ROZHRANÍ

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

Více

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

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

Více

Úvod do programovacích jazyků (Java)

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

Více

První kapitola úvod do problematiky

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

Více

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

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

Více

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

OMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC OMO 4 - Creational design patterns A Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC Ing. David Kadleček, PhD. kadlecd@fel.cvut.cz, david.kadlecek@cz.ibm.com 1 Creational

Více

(c) Miroslav Balík, Ondřej Kroupa, Martin Pelant 11/29/ přednáška. Android projekt. Manifest. Activity. Uživatelské rozhraní (základy)

(c) Miroslav Balík, Ondřej Kroupa, Martin Pelant 11/29/ přednáška. Android projekt. Manifest. Activity. Uživatelské rozhraní (základy) 2. přednáška Android projekt Manifest Activity Uživatelské rozhraní (základy) 2 Android Projekt - src Zdrojový kód v Javě Unikátní jméno balíčku Konvence: [země].[autor].[jméno aplikace] např.: cz.cvut.helloworld

Více

Jazyk C# (seminář 7)

Jazyk C# (seminář 7) Jazyk C# (seminář 7) Pavel Procházka KMI 5. listopadu 2014 WindowsForms basics Windows forms je abstrakce nad WinApi napsaném v C Hello world aplikace ve WinAPI má 114! řádků podle http: //msdn.microsoft.com/cs-cz/library/bb384843.aspx

Více

Vývoj multiplatformní aplikace v Qt

Vývoj multiplatformní aplikace v Qt Vývoj multiplatformní aplikace v Qt z pohledu vývoje Datovky Karel Slaný karel.slany@nic.cz 13. 11. 2015 Obsah Co je Qt Nástroje Qt Koncepty Qt Problémy při vývoji Datovky Balíčkování aplikace Datovka

Více

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

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 Obsah přednášky Webové služby a XML Miroslav Beneš Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2 Co jsou to webové služby rozhraní k

Více

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

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

Více

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

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

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

Více

Multiplatformní GUI toolkity

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

Více

Chain of responsibility

Chain of responsibility Chain of responsibility Chain of responsibility n Známý jako n Účel q český překlad řetěz(ec) odpovědnosti q umožnit zasílání požadavků (zpráv) neznámým příjemcům q příjemci tvoří frontu è předávají si

Více

Textové soubory. alg9 1

Textové soubory. alg9 1 Textové soubory Textový soubor je posloupnost znaků členěná na řádky každý znak je reprezentován jedním bytem, jehož obsah je dán nějakým kódováním znaků členění na řádky je závislé na platformě a obvykle

Více

KTE / ZPE Informační technologie

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

Více

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

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

Více

25. listopadu 2014, Brno Připravil: David Procházka. Qt a QML. Programovací jazyk C++

25. listopadu 2014, Brno Připravil: David Procházka. Qt a QML. Programovací jazyk C++ 25. listopadu 2014, Brno Připravil: David Procházka Qt a QML Programovací jazyk C++ Obsah přednášky Strana 2 / 38 Obsah přednášky 1 Obsah přednášky 2 Událostně řízené programování 3 Knihovna Qt 4 QML 5

Více

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

Obrázek 6.14: Prohlížec nápovedy JavaHelp Základní popis systému JavaHelp Soucástí vetšiny interaktivních aplikací je nápoveda (help) aplikace v Jave nejsou výjimkou. Systém JavaHelp je napsaný v Jave a je urcený pro aplikace vytvárené

Více

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat. Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat. 1. Odkrokujte následující program a s použitím notace z přednášky sledujte stav paměti

Více

Úvod do programování v jazyce Java

Úvod do programování v jazyce Java Úvod do programování v jazyce Java Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 5. říjen, 2011 Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 1 / 17 Organizační informace email: petr.krajca@upol.cz

Více

NSWI096 - INTERNET. CSS kaskádové styly. Mgr. Petr Lasák

NSWI096 - INTERNET. CSS kaskádové styly. Mgr. Petr Lasák NSWI096 - INTERNET CSS kaskádové styly Mgr. Petr Lasák MINULE

Více

14.4.1. Typický prvek kolekce pro české řazení

14.4.1. Typický prvek kolekce pro české řazení 14.4. Co všechno by měl mít typický prvek kolekce 177 Poznámka: Třídy BigInteger, BigDecimal a Date budou vysvětleny v částech [15./183, [16./185 a [18.1./204. 14.4.1. Typický prvek kolekce pro české řazení

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

Úvod do programovacích jazyků (Java)

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

Více

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

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

Více

Základy CSS (3. přednáška)

Základy CSS (3. přednáška) Základy CSS (3. přednáška) Kaskádové styly k čemu jsou HTML definuje strukturu, CSS definuje vzhled. CSS stylesheet soubor pravidel určujících vzhled jednotlivých prvků dokumentu CSS pravidlo sestává ze

Více

KMI / TMA Tvorba mobilních aplikací

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

Více

20. Projekt Domácí mediotéka

20. Projekt Domácí mediotéka Projekt Domácí mediotéka strana 211 20. Projekt Domácí mediotéka 20.1. Základní popis, zadání úkolu V projektu Domácí mediotéka (Dome) se jednoduchým způsobem evidují CD a videa. Projekt je velmi jednoduchý

Více

CSS Kaskádové styly. formátování webových stránek

CSS Kaskádové styly. formátování webových stránek CSS Kaskádové styly formátování webových stránek Co je CSS? Layout webových stránek Nástroj na formátování html tagů Cascading style sheets možnost vrstvení Význam tagy HTML významová vs. formátovací

Více

Copyright Rudolf Pecinovský, Soubor: PR_JavaFX_8.0_ _ z 78. JavaFX 8.0. Rudolf Pecinovský

Copyright Rudolf Pecinovský, Soubor: PR_JavaFX_8.0_ _ z 78. JavaFX 8.0. Rudolf Pecinovský Copyright Rudolf Pecinovský, Soubor: PR_JavaFX_8.0_17.02.6665_2017-03-03 1 z 78 JavaFX 8.0 Rudolf Pecinovský rudolf@pecinovsky.cz Copyright Rudolf Pecinovský, Soubor: PR_JavaFX_8.0_17.02.6665_2017-03-03

Více

Semin aˇr Java V yjimky Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Unor 2008 Radek Koˇc ı Semin aˇr Java V yjimky 1/ 25

Semin aˇr Java V yjimky Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Unor 2008 Radek Koˇc ı Semin aˇr Java V yjimky 1/ 25 Seminář Java Výjimky Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Výjimky 1/ 25 Výjimky Co a k čemu jsou výjimky výjimka je mechanizmus umožňující psát robustní, spolehlivé

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních

Více

Základní komponenty JavaFX, Layouty

Základní komponenty JavaFX, Layouty Základní komponenty JavaFX, Layouty RICHARD LIPKA 5.3. 12.3.2018 Dokončení - Obsluha ve vlastním vlákně Dlouhá obsluha (komprese, odesílání, ukládání) celkem běžná Blokuje GUI zamrzne a nereaguje na uživatele

Více

Teoretické minimum z PJV

Teoretické minimum z PJV Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov

Více

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

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

Více

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

Téma 1: Práce s Desktop. Téma 1: Práce s Desktop Téma 1: Práce s Desktop 1 Teoretické znalosti V této kapitole zjistíte, co skrývají pojmy jako Desktop, GNOME, KDE, Metacity Window Manager, Nautilus a Konqueror. Desktop neboli pracovní plocha patří mezi

Více

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

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

Více

Technologie Java. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/

Technologie Java. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Technologie Java Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Trocha historie Java vznikla v roce 1995 jak minimalistický programovací jazyk (211 tříd). Syntaxe vycházela z C/C++. V

Více

RMI Remote Method Invocation

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

Více

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

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

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 Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro

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

KIV/PIA 2013 Jan Tichava

KIV/PIA 2013 Jan Tichava KIV/PIA 2013 Jan Tichava Java EE JSF, PrimeFaces Spring JPA, EclipseLink Java Platform, Enterprise Edition Persistence Zobrazovací vrstva Interakce aplikací Deployment Java Persistence API Enterprise

Více

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat. Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat. 1. Odkrokujte následující program a s použitím notace z přednášky sledujte stav paměti

Více

Windows a real-time. Windows Embedded

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

Více

LEKCE 4. Design aplikace, rozmístění a polohování prvků. Rozmístění prvků prezentačního rozhraní

LEKCE 4. Design aplikace, rozmístění a polohování prvků. Rozmístění prvků prezentačního rozhraní LEKCE 4 Design aplikace, rozmístění a polohování prvků Po úvodních pokusech s obdélníkem v příkladu v druhé lekci nastal čas na podrobnější seznámení se s grafickými prvky pro návrh prezentačního rozhraní.

Více

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

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

Více

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

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

Více

Obsah. Úvod 11 Zpětná vazba od čtenářů 13 Errata 14 Poznámka ke kódům 14

Obsah. Úvod 11 Zpětná vazba od čtenářů 13 Errata 14 Poznámka ke kódům 14 Úvod 11 Zpětná vazba od čtenářů 13 Errata 14 Poznámka ke kódům 14 KAPITOLA 1 Nové rysy Windows 8 a 8.1 15 Nové uživatelské rozhraní 15 Rychlý náběh po zapnutí 16 Informace v prvním sledu 16 Nové prezentační

Více

Elektronické publikování - prezentace. 23. dubna 2009 VŠB - TUO. Beamer - grafické zpracování prezentace. Rostislav Šuta, sut017.

Elektronické publikování - prezentace. 23. dubna 2009 VŠB - TUO. Beamer - grafické zpracování prezentace. Rostislav Šuta, sut017. Beamer - Elektronické publikování - VŠB - TUO 23. dubna 2009 Obsah 1 2 3 4 5 6 Obsah 1 2 3 4 5 6 schémata barvy písma změna fontu vnitřní schémata vnější schémata Obsah Prezentace bez navigace e stromovou

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2007/2008 c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních

Více

MBI - technologická realizace modelu

MBI - technologická realizace modelu MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,

Více

NSWI096 - INTERNET JavaScript

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

Více

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

KMI / TMA Tvorba mobilních aplikací. 3. seminář ZS 2016/2017 Středa 13:15-15:45 KMI / TMA Tvorba mobilních aplikací 3. seminář 12.10.2016 ZS 2016/2017 Středa 13:15-15:45 OBSAH SEMINáře vztah aktivit a layoutů, views a layouty podrobně, přizpůsobení se HW HIERARCHIE VIEWS Co všechno

Více

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

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

Více

Bc. Martin Majer, AiP Beroun s.r.o.

Bc. Martin Majer, AiP Beroun s.r.o. REGISTR DIGITALIZACE HISTORICKÝCH FONDŮ (RDHF) A DIGITÁLNÍCH KONKORDANCÍ (DK) Návrh uživatelského rozhraní klientských aplikací verze 1.0 Bc. Martin Majer, AiP Beroun s.r.o. 28.11.2016-1 - Obsah 1 Seznam

Více

JAVA JavaBeans Java, letní semestr 2018

JAVA JavaBeans Java, letní semestr 2018 JAVA JavaBeans Komponenty přehled komponenta znovupoužitelný kus kódu charakterizována službami, které poskytuje a požaduje není přesná definice komponentové modely JavaBeans Enterprise JavaBeans (EJB)...

Více

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

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

Více

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15 Platforma Java Objektově relační mapování II Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, 2016 1 / 15 Dotazování vyhledání objektu podle

Více

Kurz Databáze. Obsah. Formuláře. Práce s daty. Doc. Ing. Radim Farana, CSc.

Kurz Databáze. Obsah. Formuláře. Práce s daty. Doc. Ing. Radim Farana, CSc. Kurz Databáze Práce s daty Doc. Ing. Radim Farana, CSc. Obsah Formuláře, typy formulářů, sekce formuláře. Objekty formuláře. Vytváření formulářů pomocí průvodce. Výběr dat, virtuální položky, agregace

Více

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

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

Více