への誘い
Agenda

  Java の UI の歴史

  JavaFX 2.0
     UI
     General Purpose

  Conclusion
History
JDK/JRE

  AWT      Swing              JavaFX3.0
           Java 2D
Java        SwingX
             JAI/ImageIO
           Java 3D    LG3D
                JOGL
              SWT         JavaFX2.0
Non-Java
                 GWT
                  F3 JavaFX
JavaFX 2.0
    第 3 の Java の GUI ライブラリ

     高性能レンダリングエンジン
  アニメーション / エフェクト
      JVM で動作する言語から利用可
JavaFX
        UI        General
                  Purpose

SceneGraph
Stage
                        Scene
                       VBox
                       HBox
                       TableView




Stage   Scene VBox   HBox          Label
                                   TextBox
                                   Button
                     TableView
Node



Control   Pane   Shape
Node



  Control             Pane   Shape


Web

      Media

              Chart
Web
      WebView view = new WebView();

      WebEngine engine = view.getEngine();
      engine.load("http://google.com/");
Media

Media media = new Media(url);
MediaPlayer player = new MediaPlayer(media);
MediaView view = new MediaView(player);

player.play();
SceneGraph の構築
  public class Hello extends Application {
      @Override
      public void start(Stage stage) {
          // コンテナ
          Group container = new Group();

          // シーングラフのルート要素を生成し、コンテナを貼る
          Scene scene = new Scene(container, 100, 20);
          stage.setScene(scene);

          // ラベルを生成しコンテナに貼る
          Label label = new Label("Hello, World!");
          container.getChildren().add(label);


      }
          stage.show();
                           SceneGraph の構築
      public static void main(String[] args) {
          Application.launch(Hello.class, null);
      }
  }
SceneGraph の構築
FXML
 <?import javafx.scene.control.*?>
 <?import javafx.scene.layout.*?>

 <FlowPane xmlns:fx="http://javafx.com/fxml">
   <children>
     <Label text="Label" />
     <TextBox fx:id="textBox" text="TextBox" />
     <Button fx:id="button" text="Button" />
   </children>
 </FlowPane>
JavaFX
             UI                    General
                                   Purpose

  SceneGraph      FXML
                       Animation
      Node             Effect
                       CSS

Control Region Shape


Web Media Chart
Animation




            自動補完
Animation
Effect


Node image = ...;                         Node image = ...;
GaussianBlur blur = new GaussianBlur();   DropShadow shdw= new DropShadow();
blur.setRadius(10.0);                     shdw.setOffsetX(5); shdw.setOffsetY(5);
image.setEffect(blur);                    image.setEffect(shdw);




Node image = ...;                         Node image = ...;
image.setEffect(new Reflection());        image.setEffect(new SepiaTone());
CSS
                 Scene scene = new Scene(container, 400, 100);
                 // スタイルシートの設定
                 scene.getStylesheets().add("/style.css");




.button {                                  .button {
    -fx-font: 24pt "SansSerif";                -fx-font: 16pt "SansSerif";
    -fx-text-fill: #006666;                    -fx-text-fill: #00FF33;
    -fx-background-color: orange;              -fx-background-color: #0066FF;
    -fx-border-radius: 20;                     -fx-border-radius: 0;
    -fx-background-radius: 20;                 -fx-background-radius: 0;
    -fx-padding: 5;                            -fx-padding: 20;
}                                          }
CSS
                 Scene scene = new Scene(container, 400, 100);
                 // スタイルシートの設定
                 scene.getStylesheets().add("/style.css");




.button {                                  .button {
    -fx-font: 24pt "SansSerif";                -fx-font: 16pt "SansSerif";
    -fx-text-fill: #006666;                    -fx-text-fill: #00FF33;
    -fx-background-color: orange;              -fx-background-color: #0066FF;
    -fx-border-radius: 20;                     -fx-border-radius: 0;
    -fx-background-radius: 20;                 -fx-background-radius: 0;
    -fx-padding: 5;                            -fx-padding: 20;
}                                          }
JavaFX
             UI                   General
                                  Purpose

  SceneGraph      FXML         Property     Async
                   Animation
      Node         Effect      Bind   Collection
                   CSS

Control Region Shape


Web Media Chart
MVC   View         Observer Pattern

                         Model


                    Event
      Controller
MVC   View

                                  Model
                Bind

      Controller

         // モデル
         DoubleProperty xProperty = new DoubleProperty();

         Slider slider = new Slider(50, 300, 0);
         // モデルにスライダの値をバインドさせる
         xProperty.bind(slider.valueProperty());

         Rectangle rect = new Rectangle(50, 10, 50, 30);
         // 四角の x 座標にモデルをバインドさせる
         rect.xProperty().bind(xProperty);
JavaSE8            JavaFX                 OpenJDK

             UI                    General
                                   Purpose

  SceneGraph      FXML          Property       Async
                   Animation
      Node         Effect      Bind      Collection
                   CSS
                               Tool
Control Region Shape
                               NetBeans 7.1 Scene Builder

Web Media Chart                デザイナ向けツールが ...
への誘い

More Related Content

PDF
何が変わった JavaFX 2.0
PDF
Scene BuilderでFXML
PDF
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
PDF
Unit testing JavaScript with JUnit/JavaFX
PDF
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
PDF
JavaFX 2.0 - リッチクライアントのためのUI基盤
PDF
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
PDF
Creators'night#12今井
何が変わった JavaFX 2.0
Scene BuilderでFXML
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
Unit testing JavaScript with JUnit/JavaFX
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
JavaFX 2.0 - リッチクライアントのためのUI基盤
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Creators'night#12今井

What's hot (10)

PDF
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
PDF
プロダクトに 1 から Vue.js を導入した話
PPTX
Java fx勉強会lt 第8回
PPT
20090212
PDF
はじめてのVue.js
PDF
Study Intro Backbone
PDF
jQuery Performance Tips – jQueryにおける高速化 -
PDF
PhoneGap Introduction
PDF
Knocked out in knockout js
PPTX
Windows ストアアプリのgrid viewを入門してみた
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
プロダクトに 1 から Vue.js を導入した話
Java fx勉強会lt 第8回
20090212
はじめてのVue.js
Study Intro Backbone
jQuery Performance Tips – jQueryにおける高速化 -
PhoneGap Introduction
Knocked out in knockout js
Windows ストアアプリのgrid viewを入門してみた
Ad

Similar to JavaFX 2.0 への誘い (20)

PPT
Flash Builder4 と FlashCatalyst を使ってみた
PDF
[JavaOne Tokyo 2012] JavaFX and Web Integration
PDF
WPFことはじめ
PDF
Flashup13 Basic Training of Flare3D
PDF
JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!
PDF
openFrameworks Workshop in Kanazawa v001
PPTX
Java FXグラフィックスとアニメーション入門(JJUG CCC 2015 Spring G-7)
PDF
Fxug
PDF
Flashup 12 Basic Training of Away3D
PDF
Flashup 8
KEY
Sencha study
KEY
Arctic.js
PDF
JavaFXでマルチタッチプログラミング
PDF
はじめよう JavaFX 2.x
PDF
PPTX
Silverlightの今
PDF
cocos2d-xハンズオン勉強会 in 名古屋
PDF
かんたんなcocos2d-xの紹介
PDF
cocos2d-xにおけるBox2Dの利用方法および便利なツール
PPTX
Uwpでみるxaml入門
Flash Builder4 と FlashCatalyst を使ってみた
[JavaOne Tokyo 2012] JavaFX and Web Integration
WPFことはじめ
Flashup13 Basic Training of Flare3D
JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!
openFrameworks Workshop in Kanazawa v001
Java FXグラフィックスとアニメーション入門(JJUG CCC 2015 Spring G-7)
Fxug
Flashup 12 Basic Training of Away3D
Flashup 8
Sencha study
Arctic.js
JavaFXでマルチタッチプログラミング
はじめよう JavaFX 2.x
Silverlightの今
cocos2d-xハンズオン勉強会 in 名古屋
かんたんなcocos2d-xの紹介
cocos2d-xにおけるBox2Dの利用方法および便利なツール
Uwpでみるxaml入門
Ad

More from Yuichi Sakuraba (20)

PDF
Vector API - Javaによるベクターコンピューティング
PDF
Oracle Code One - Java KeynoteとJava SE
PDF
Project Loom + Project Panama
PDF
Project Loom - 限定継続と軽量スレッド -
PDF
Oracle Code One 報告会 Java SE Update
PDF
今こそStream API入門
PDF
Oracle Code One 報告会 Java SE Update
PDF
Learn Language 2018 Java Language Update
PDF
Dockerに向けて、Javaもダイエット
PDF
What's New in Java
PDF
Migration Guide to Java SE 10, and also Java SE 11
PDF
琥珀色のJava - Project Amber -
PDF
Moving to Module: Issues & Solutions
PDF
モジュール移行の課題と対策
PDF
Project Jigsawと、ちょっとだけVector API
PDF
Java SE 9の全貌
PDF
Java SEの現在、過去 そして未来
PDF
Java SE 9 のススメ
PDF
Introduction of Project Jigsaw
PDF
Encouragement of Java SE 9
Vector API - Javaによるベクターコンピューティング
Oracle Code One - Java KeynoteとJava SE
Project Loom + Project Panama
Project Loom - 限定継続と軽量スレッド -
Oracle Code One 報告会 Java SE Update
今こそStream API入門
Oracle Code One 報告会 Java SE Update
Learn Language 2018 Java Language Update
Dockerに向けて、Javaもダイエット
What's New in Java
Migration Guide to Java SE 10, and also Java SE 11
琥珀色のJava - Project Amber -
Moving to Module: Issues & Solutions
モジュール移行の課題と対策
Project Jigsawと、ちょっとだけVector API
Java SE 9の全貌
Java SEの現在、過去 そして未来
Java SE 9 のススメ
Introduction of Project Jigsaw
Encouragement of Java SE 9

JavaFX 2.0 への誘い

  • 2. Agenda Java の UI の歴史 JavaFX 2.0 UI General Purpose Conclusion
  • 4. JDK/JRE AWT Swing JavaFX3.0 Java 2D Java SwingX JAI/ImageIO Java 3D LG3D JOGL SWT JavaFX2.0 Non-Java GWT F3 JavaFX
  • 5. JavaFX 2.0 第 3 の Java の GUI ライブラリ 高性能レンダリングエンジン アニメーション / エフェクト JVM で動作する言語から利用可
  • 6. JavaFX UI General Purpose SceneGraph
  • 7. Stage Scene VBox HBox TableView Stage Scene VBox HBox Label TextBox Button TableView
  • 8. Node Control Pane Shape
  • 9. Node Control Pane Shape Web Media Chart
  • 10. Web WebView view = new WebView(); WebEngine engine = view.getEngine(); engine.load("http://google.com/");
  • 11. Media Media media = new Media(url); MediaPlayer player = new MediaPlayer(media); MediaView view = new MediaView(player); player.play();
  • 12. SceneGraph の構築 public class Hello extends Application { @Override public void start(Stage stage) { // コンテナ Group container = new Group(); // シーングラフのルート要素を生成し、コンテナを貼る Scene scene = new Scene(container, 100, 20); stage.setScene(scene); // ラベルを生成しコンテナに貼る Label label = new Label("Hello, World!"); container.getChildren().add(label); } stage.show(); SceneGraph の構築 public static void main(String[] args) { Application.launch(Hello.class, null); } }
  • 13. SceneGraph の構築 FXML <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <FlowPane xmlns:fx="http://javafx.com/fxml"> <children> <Label text="Label" /> <TextBox fx:id="textBox" text="TextBox" /> <Button fx:id="button" text="Button" /> </children> </FlowPane>
  • 14. JavaFX UI General Purpose SceneGraph FXML Animation Node Effect CSS Control Region Shape Web Media Chart
  • 15. Animation 自動補完
  • 17. Effect Node image = ...; Node image = ...; GaussianBlur blur = new GaussianBlur(); DropShadow shdw= new DropShadow(); blur.setRadius(10.0); shdw.setOffsetX(5); shdw.setOffsetY(5); image.setEffect(blur); image.setEffect(shdw); Node image = ...; Node image = ...; image.setEffect(new Reflection()); image.setEffect(new SepiaTone());
  • 18. CSS Scene scene = new Scene(container, 400, 100); // スタイルシートの設定 scene.getStylesheets().add("/style.css"); .button { .button { -fx-font: 24pt "SansSerif"; -fx-font: 16pt "SansSerif"; -fx-text-fill: #006666; -fx-text-fill: #00FF33; -fx-background-color: orange; -fx-background-color: #0066FF; -fx-border-radius: 20; -fx-border-radius: 0; -fx-background-radius: 20; -fx-background-radius: 0; -fx-padding: 5; -fx-padding: 20; } }
  • 19. CSS Scene scene = new Scene(container, 400, 100); // スタイルシートの設定 scene.getStylesheets().add("/style.css"); .button { .button { -fx-font: 24pt "SansSerif"; -fx-font: 16pt "SansSerif"; -fx-text-fill: #006666; -fx-text-fill: #00FF33; -fx-background-color: orange; -fx-background-color: #0066FF; -fx-border-radius: 20; -fx-border-radius: 0; -fx-background-radius: 20; -fx-background-radius: 0; -fx-padding: 5; -fx-padding: 20; } }
  • 20. JavaFX UI General Purpose SceneGraph FXML Property Async Animation Node Effect Bind Collection CSS Control Region Shape Web Media Chart
  • 21. MVC View Observer Pattern Model Event Controller
  • 22. MVC View Model Bind Controller // モデル DoubleProperty xProperty = new DoubleProperty(); Slider slider = new Slider(50, 300, 0); // モデルにスライダの値をバインドさせる xProperty.bind(slider.valueProperty()); Rectangle rect = new Rectangle(50, 10, 50, 30); // 四角の x 座標にモデルをバインドさせる rect.xProperty().bind(xProperty);
  • 23. JavaSE8 JavaFX OpenJDK UI General Purpose SceneGraph FXML Property Async Animation Node Effect Bind Collection CSS Tool Control Region Shape NetBeans 7.1 Scene Builder Web Media Chart デザイナ向けツールが ...