Javantura Zagreb 2014 - JavaFX vs. Swing - Aleksander Radovan i Juraj Ćutić

50 %
50 %
Information about Javantura Zagreb 2014 - JavaFX vs. Swing - Aleksander Radovan i Juraj Ćutić
Technology

Published on March 2, 2014

Author: hujak

Source: slideshare.net

Description

Konferencija Javantura Zagreb 2014 by HUJAK

Je li JavaFX pravi nasljednik Swinga? by Juraj Ćutić i Aleksander Radovan

Java Swing je prisutan u Java SE distribuciji od verzije 1.2. koja je objavljena 1998. i od tada nije doživio znatnija unapređenja po pitanju vizualnih karakteristika. Java developeri su zbog toga bili primorani koristiti vanjske librarye i frameworke kako bi riješili taj veliki nedostatak Jave prilikom razvoja rich client aplikacija. Je li objavom JavaFX 2 došao trenutak da se Swing pošalje u zasluženu mirovinu? Što bi to značilo za podršku Swinga u novim distribucijama JRE-a? Je li moguće istovremeno koristiti te dvije tehnologije na istom projektu? Mogu li se iskoristiti CSS i XML za dizajniranje GUI-a Java desktop aplikacija? Postoji li vizualni alat ili Eclipse plugin za dizajniranje JavaFX GUI-a? Na sva navedena i ostala pitanja dobit ćete odgovore na našem predavanju.

Persolvo Juraj Ćutić Aleksander Radovan

Desktop app?

Web UI Fads Izvor: http://www.oracle.com/technetwork/articles/java/casa-1919152.html

Architecture Izvor: http://www.oracle.com/technetwork/articles/java/casa-1919152.html

Swing & JavaFX Layouts

Versions • 10 mj. 2008. izašla je prva verzija JavaFX 1.0 • Verzije 1.x koriste skriptni jezik JavaFX Script • 10 mj. 2011. izlazi verzija 2.0 • Verzije 2.x koriste Java kod umjesto JavaFX Script • JavaFX API postaje standardni dio JDK 8 • Ostali JVM jezici – Groovy, Scala, Clojure...

Features • JavaFX CSS - sličan kao HTML CSS • FXML – baziran na XML-u, prikaz objekata na GUI-u • Integracija u Swing aplikacije • Podrška za HTML5 i JavaScript • Podrška za multimediju i animacije • Optimiziran za pokretanje na Rasberry Pi-u

Modularity FXML Servisi

Launch JavaFX • Naslijeđivanje klase Application i poziv metode launch: public class ApplicationStart extends Application { public static void main(String[] args) { launch(args);} public void start(Stage stage) { ... }} Stage Scene Pane Elementi

JavaFX CSS • Uključivanje CSS datoteke unutar FXML u root elementu: <stylesheets> <URL value="@CSS_File.css" /> </stylesheets> ili kroz Java kod: scene.getStylesheets(). add(class.getResource("CSS_File.css").toExternalForm()); • CSS klasa: .button { -fx-font-family: "Arial"; -fx-effect: dropshadow( one-pass-box , black , 8 , 0.0 , 2 , 0 );} • #btn{ ... } – moguće definiranje i preko ID-a elementa

FXML • Deklariranje Layouta i elemenata sučelja • Povezivanje FXML-a pomoću naziva kontrolera: <GridPane fx:controller="fxmlexample.FXMLController“ ... > • Nazivi ID-eva elemenata se automatski povezuju s nazivima varijabli u kontroleru • @FXML - varijable i funkcije koje nemaju public modificator <TextField fx:id="firstNameField" onAction="#submit" /> @FXML private TextField firstNameField; @FXML private Label messageLabel; @FXML private void submit(ActionEvent event) { messageLabel.setText(person.getFirstName()); }

FXML • JavaScript za pozivanje metoda i postavljanje varijabli unutar FXML-a: <fx:script> function handleSubmitButtonAction() { actiontarget.setText(“Pozivanje iz JavaScripta"); } var myText = “Tekst unutar FXML-a"; </fx:script> <Label text="$myText"/> • Expression Binding unutar FXML-a: <TextField fx:id="textField"/> <Label text="${textField.text}"/> • JavaFX Scene Builder – Oracleov drag and drop editor, kreira FXML • Pluginovi za Eclipse (e(fx)clipse), NetBeans i IntelliJ IDEA

JavaFX with Swing • JFXPanel – integracija JavaFX elemeta u Swing • SwingNode – integracija Swing elemeta u JavaFX • Koriste zasebne main threadove • Sinhroniziraju se metodama: Swing : JavaFX : SwingUtilities.invokeLater(new Runnable() { ... }) Platform.runLater(new Runnable() { ... }) • Eksperimentalne klase za zajednički thread u JDK 8

JavaFX with HTML5 and others • WebEngine, WebView – klase za integraciju sa HTML5 • Prikaz HTML-a sa URL-a ili iz lokalne datoteke • Poziv JavaScripta iz učitanog HTML-a i obrnuto: webEngine.executeScript("toggleDisplay('PrevRel')"); JSObject win = (JSObject) webEngine.executeScript("window"); win.setMember("app", new JavaApp()); • ObservableList – auto refresh elemenata na GUI-u • Klase Task i Service – pokretanje i sinhronizacija pozadinskih thredova sa GUI threadom

Example Autor: Antonio Jedvaj, student TVZ-a, seminarski rad

JavaFx vs. Swing Integracija sa drugim tehnologijama Izgled, animacije i multimedija Brzina razvoja i održavanje Dizajneri grafičkog sučelja KONAČNI REZULTAT: 3 1

Thank you!

Add a comment

Related presentations

Related pages

Javantura Zagreb 2014 - JavaFX vs. Swing - Aleksander ...

Javantura Zagreb 2014 - JavaFX vs. Swing - Aleksander Radovan i Juraj Ćutić ... Javantura Zagreb 2014 ... +YouTube; Terms;
Read more

Javantura Zagreb 2014 - Java na klijentskoj strani - Ivan ...

Javantura Zagreb 2014 - Java na klijentskoj strani - Ivan ... JavaFX vs. Swing - Aleksander Radovan i Juraj Ćutić ... Javantura Zagreb 2014 ...
Read more