SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
1   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
JavaFX and Web Integration
            日本オラクル株式会社 Java Embedded Global Business Unit
2           関谷 和愛
    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。ま
た、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはでき
ません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約
)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラク
ル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の
裁量により決定されます。

    OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。
    文中の社名、商品名等は各社の商標または登録商標である場合があります。


3    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Servers                            Desktop     Embedded      TV        Mobile     Card
                                                                                            BD-J
    Key APIs                    Java EE                              JavaFX               Java TV     MSA

    Platform                                                Java SE                         Java ME            Java Card

Language                                                                         Java Language
                                                                                 Java Platform
4    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
JavaFXとは
    次世代Javaクライアントソリューション




                メディア                                                                           Web

             動画・音声                                                                         HTML5/CSS3/JavaScript



                                                                                        アニメーション
                                                                                        エフェクト
                                                                           高度なグラフィックス   3D
5   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
JavaFX 2.0アーキテクチャ




6   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
アジェンダ

    • Webコンポーネントの概要
    • API: WebEngineとWebView
    • より高度な連携




7   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
JavaFXのWebコンポーネント

    • 本格的なブラウザを内蔵
          –      HTML4およびHTML5の一部をサポート
          –      JavaScriptエンジン
          –      LiveConnect対応
          –      DOMアクセス
          –      SVGサポート




8   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Webコンポーネントの利用シーン

    • Webコンテンツの表示
          – リモートはもちろんローカル生成コンテンツも
    • Webアプリケーションの埋め込み
          – JavaからWebアプリをコントロール
          – Webアプリと多彩なJavaライブラリを融合




9   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Webコンポーネントの実装

     • WebKitベース
           – ネットワーク機能はjava.netを利用
           – レンダリングにはJavaFX(Prism)を利用
     • シーングラフノードとして提供
           – エフェクトやトランジションなどを適用可能




10   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Webコンポーネントのパフォーマンス
     Windows
     • GUIMark2 HTML5テスト http://www.craftymind.com/guimark2

                                                                            Vector Test      Bitmap Test           Text Test
                    Chrome
                                                                                    16.4                22.1                20.6
                    17.0
                    Firefox
                                                                                    12.2                 9.8                28.4
                    10.0.2
                    JavaFX
                                                                                    15.1                30.2                 5.8
                    2.0.3
                                                                      Windows 7 Professional / Intel Core 2 Duo 2.53GHz / RAM 4.0GB
11   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Webコンポーネントのパフォーマンス
     Mac
     • GUIMark2 HTML5テスト http://www.craftymind.com/guimark2

                                                                            Vector Test     Bitmap Test          Text Test
                    Chrome
                                                                                   16.9                 56               18.9
                    18.0
                    Safari
                                                                                    3.5               14.5               23.8
                    5.1.5
                    JavaFX
                                                                                   15.5               31.1                 7.0
                    2.1 beta b19
                                                                            MacOSX 10.6.8 / Intel Core 2 Duo 2.13GHz / RAM 4.0GB
12   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
DEMO


13   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
アジェンダ

     • Webコンポーネントの概要
     • API: WebEngineとWebView
     • より高度な連携




14   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
WebEngineとWebView




15   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
WebEngine
     package javafx.scene.web;
     • ビューではなく機能を提供
           – Webページのロード
           – スクリプトの実行
           – DOMアクセス
     • WebVeiwとは独立に利用可能




16   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
WebView
     package javafx.scene.web;
     • シーングラフノードとしてビューを提供
           – Webページを表示
     • 連動するWebEngineを1個持つ
           – 生成時に自動的に作られ変更は不可
           – WebView.getEngine() で取得




17   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
WebEngineの主なメソッド

      メソッド                                                                  説明
      void load(String url)                                                 指定したWebページをロード
      void loadContent(String content)                                      HTMLを直接ロード
      void reload()                                                         リロード
      Worker getLoadWorker()                                                ロード状況監視用のWorkerを取得
      Object executeScript(String script)                                   JavaScriptを実行
      Document getDocument()                                                DOMを取得




18   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
ロード状況の監視とキャンセル
     package javafx.concurrent;
     • Webページのロードは非同期に行われる
     • WebEngineから取得したWorkerを利用する
           – 状態遷移
                    • state:
                      READY→SCHEDULED→RUNNING→SUCCEEDED/FAILED/CANCE
                      LED
           – 進捗状況
                    • progress (0〜1)
                    • totalWork, workDone (全体作業量と終了分)
           – キャンセル
                    • cancel()
19   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Webコンポーネントの基本的な利用例

                                           import javafx.scene.web.WebView;
                                           import javafx.scene.web.WebEngine;

                                           WebView view = new WebView();
                                           // シーングラフに追加
                                           // WebEngineを取得
                                           WebEngine engine = view.getEngine();

                                           // ページをロード
                                           engine.load("http://javafx.com");



20   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
DEMO


21   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
アジェンダ

     • Webコンポーネントの概要
     • API: WebEngineとWebView
     • より高度な連携




22   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
DOM (Document Object Model) アクセス

     • WebEngineのgetDocumentメソッド、documentプロパティ
           – ページのロード時に初期化
           – プロパティ自体はReadOnlyだがドキュメント構造は変更可能




23   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
DOMの変更の例



 Document = engine.getDocument();

 Element para2 = doc.getElementById("para2");
 Element newp = doc.createElement("p");
 newp.appendChild(doc.createTextNode("new paragraph"));
 para2.getParentNode().insertBefore(newp, para2);




24   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
DEMO


25   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
contentEditable

      • HTML5でサポートされる属性
      • 要素を編集可能にする例:

// DOMのElementインタフェースを使用
inputLine.setAttribute("contenteditable", "true");

// またはJSObjectにキャストして
((JSObject)inputLine).setMember("contentEditable", true)



 26   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
JavaScriptの実行

       • WebEngine.executeScriptメソッド
             – 現在のコンテキストで任意のJavaScript式を評価できる



public String getPath() {
  return (String)webEngine.executeScript("location.pathname");
}




  27   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
JavaScript値のJavaへの変換

      JavaScript                                                            Java
      null                                                                  null
      undefined                                                             “undefined”
      数値                                                                    java.lang.Number
                                                                            (Integer または Double)
      文字列                                                                   java.lang.String
      ブール値                                                                  java.lang.Boolean
      オブジェクト                                                                netscape.javascript.JSObject


28   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
JSObject
     package netscape.javascript;
     • JavaScriptオブジェクトのラッパークラス
     • LiveConnectで規定されたAPI

     主なメソッド                                                                 説明
      Object getMember(String name)                                         メンバーの取得
      void setMember(String name, Object value)                             メンバーの設定
      void removeMember(String name)                                        メンバーの削除
      Object call(String method, Object[] args)                             メソッド呼び出し


29   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
JSObjectとDOM

     • DOMノードはJSObjectもimplementsしている
           – 同じオブジェクトがWebKitのnative DOMとJS DOMの両方をラップ
     • キャストしてJSObjectとしても扱える


              Element inputLine = ...; // DOM要素を取得
              // JSObjectとして扱う
              ((JSObject)inputLine).call("focus");




30   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
JavaScriptからのJava呼び出し

     • インタフェースオブジェクトを作り、JSObjectにsetMemeber
     →JavaScriptから呼び出し可能に




31   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
JavaScriptからのJava呼び出し

class Bridge {
  public void exit() { Platform.exit(); }
}



JSObject jsobj = (JSObject)webEngine.executeScript("window");
jsobj.setMember("java", new Bridge());


<p>Click
<a href="" onclick="java.exit();">here</a>
to exit the application</p>

  32   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
スレッドについての注意

     • JavaFXはSwing同様シングルスレッドポリシー
     • WebKitもシングルスレッドポリシー
     →WebコンポーネントにはJavaFXのアプリケーションスレッドか
       らアクセスしなければならない
           – javafx.application.PlatformのrunLaterメソッドを利用




33   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
DEMO


34   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
WiiリモコンでGoogle Mapをコントロール


                                                                            WiiRemoteJ

                                                                             BlueCove               Googleマップ
                            Bluetooth


                                                                                JavaScript API
                                                                                  呼び出し



                                                                                                 WebEngine/WebView
Wiiリモコン

35   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
TwitterストリームとHTML5の連動



                                                                                                    Ball Pool
     Streaming API
                                                                            JavaScript呼び出し
                                                                                createBall()




                                                                                               WebEngine/WebView


36   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
まとめ
     JavaFX and Web Integration
     • JavaFXは強力なWebコンポーネントを標準装備
           – WebKitベースの本格的な内蔵ブラウザ
                    • HTML5にも部分対応
                    • 高性能
           – Java・Webアプリ間の連携APIを提供
                    • JavaScript実行
                    • DOMアクセス
     →WebとJavaを融合した新しいアプリ開発が可能に!


37   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
JavaOne Tokyo 2012: JavaFXコンテンツ
     今後のセッション
     • JS1-23 JavaFX + FXML + CSS = Javaの次世代GUI
       [CFPセッション]
     • JS1-32 Introduction to the JavaFX Scene Builder
     • JS2-02 JavaFX Architecture and Programming Model
     • JS2-32 Interface Layout with JavaFX 2.0
     • JS2-42 UI Controls and Charts: Drag-and-Drop, Filtering,
       Sorting, Table Hookup with Charts


38   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
JavaOne Tokyo 2012: JavaFXコンテンツ
     ハンズオン・展示
     • JH2-01 JavaFX 2.0によるリッチグラフィカルア
       プリケーション開発 [ハンズオン]
     • Oracle DEMOgrounds: JavaFX Labs




39   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
40   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
41   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Mais conteúdo relacionado

Mais procurados

Jsf アプリ作ったった
Jsf アプリ作ったったJsf アプリ作ったった
Jsf アプリ作ったったOda Shinsuke
 
Open Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere LibertyOpen Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere LibertyTakakiyo Tanaka
 
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...Takakiyo Tanaka
 
Java EEの話(仮)
Java EEの話(仮)Java EEの話(仮)
Java EEの話(仮)Satoshi Kubo
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方Takahiro YAMADA
 
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jpJavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jpYuji Kubota
 
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」Hiroaki NAKADA
 
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajoOpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajoTakahiro YAMADA
 
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?Takahiro YAMADA
 
Mvc conf session_3_takehara
Mvc conf session_3_takeharaMvc conf session_3_takehara
Mvc conf session_3_takeharaHiroshi Okunushi
 
Beginning Java EE 6 勉強会(3) #bje_study
Beginning Java EE 6 勉強会(3) #bje_studyBeginning Java EE 6 勉強会(3) #bje_study
Beginning Java EE 6 勉強会(3) #bje_studyinatus
 
はじめてのAngular その1
はじめてのAngular その1はじめてのAngular その1
はじめてのAngular その1純一 榮枝
 
HTML5の前のJavaScript入門
HTML5の前のJavaScript入門HTML5の前のJavaScript入門
HTML5の前のJavaScript入門Hiroki Toyokawa
 
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側賢 秋穂
 
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかWebアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかChihiro Ito
 
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...オラクルエンジニア通信
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5Takahiro YAMADA
 
Web Technology Meeting
Web Technology MeetingWeb Technology Meeting
Web Technology Meetingdynamis
 

Mais procurados (20)

Jsf アプリ作ったった
Jsf アプリ作ったったJsf アプリ作ったった
Jsf アプリ作ったった
 
Open Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere LibertyOpen Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere Liberty
 
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
 
Java EEの話(仮)
Java EEの話(仮)Java EEの話(仮)
Java EEの話(仮)
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方
 
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jpJavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jp
 
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
 
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajoOpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
 
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
 
Mvc conf session_3_takehara
Mvc conf session_3_takeharaMvc conf session_3_takehara
Mvc conf session_3_takehara
 
Beginning Java EE 6 勉強会(3) #bje_study
Beginning Java EE 6 勉強会(3) #bje_studyBeginning Java EE 6 勉強会(3) #bje_study
Beginning Java EE 6 勉強会(3) #bje_study
 
はじめてのAngular その1
はじめてのAngular その1はじめてのAngular その1
はじめてのAngular その1
 
HTML5の前のJavaScript入門
HTML5の前のJavaScript入門HTML5の前のJavaScript入門
HTML5の前のJavaScript入門
 
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
 
Mvc conf session_1_osada
Mvc conf session_1_osadaMvc conf session_1_osada
Mvc conf session_1_osada
 
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかWebアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
 
JDK:新しいリリースモデル解説 @ 熊本・福岡
JDK:新しいリリースモデル解説 @ 熊本・福岡JDK:新しいリリースモデル解説 @ 熊本・福岡
JDK:新しいリリースモデル解説 @ 熊本・福岡
 
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
 
Web Technology Meeting
Web Technology MeetingWeb Technology Meeting
Web Technology Meeting
 

Destaque

Skadoosh ! Lessons in Self Management from Kung Fu Panda
Skadoosh !  Lessons in Self Management from Kung Fu PandaSkadoosh !  Lessons in Self Management from Kung Fu Panda
Skadoosh ! Lessons in Self Management from Kung Fu PandaMuder Chiba
 
Kk dengan jamban yang sehat dari 5 kota
Kk dengan jamban yang sehat dari 5 kota Kk dengan jamban yang sehat dari 5 kota
Kk dengan jamban yang sehat dari 5 kota wely supriatna
 
Social media for Associations - Tony De Nazareth
Social media for Associations - Tony De NazarethSocial media for Associations - Tony De Nazareth
Social media for Associations - Tony De NazarethNinetyTen
 
Resep masakan indonesia praktis
Resep masakan indonesia praktisResep masakan indonesia praktis
Resep masakan indonesia praktisAbu Dapeei
 
Taiga4lightningtalks
Taiga4lightningtalksTaiga4lightningtalks
Taiga4lightningtalkskantelman
 
محمد عساف...مطرب القلوب
محمد عساف...مطرب القلوبمحمد عساف...مطرب القلوب
محمد عساف...مطرب القلوبAli Anani, PhD
 
Kid president presentation 2
Kid president presentation 2Kid president presentation 2
Kid president presentation 2OM3283
 
Responsive Design in Higher Education
Responsive Design in Higher EducationResponsive Design in Higher Education
Responsive Design in Higher EducationNavigationArts
 
Xarxes Socials-XSJardelA
Xarxes Socials-XSJardelAXarxes Socials-XSJardelA
Xarxes Socials-XSJardelAJaxofon
 
Customer Service check list
Customer Service check listCustomer Service check list
Customer Service check listAdaya T. Kodua
 
Welcome back, GlassFish!
Welcome back, GlassFish!Welcome back, GlassFish!
Welcome back, GlassFish!Yumi Hiraoka
 
Social Network Analysis Of Intangibles
Social Network Analysis Of IntangiblesSocial Network Analysis Of Intangibles
Social Network Analysis Of IntangiblesAli Anani, PhD
 
Hashtags & Retweets: Using Twitter to aid Community, Communication and Casual...
Hashtags & Retweets: Using Twitter to aid Community, Communication and Casual...Hashtags & Retweets: Using Twitter to aid Community, Communication and Casual...
Hashtags & Retweets: Using Twitter to aid Community, Communication and Casual...Peter Reed
 
Guia de estudio saso ii
Guia de estudio saso iiGuia de estudio saso ii
Guia de estudio saso iiReyner Leon
 
気象庁発表の地震情報
気象庁発表の地震情報気象庁発表の地震情報
気象庁発表の地震情報Kentaro Ikehata
 

Destaque (19)

Skadoosh ! Lessons in Self Management from Kung Fu Panda
Skadoosh !  Lessons in Self Management from Kung Fu PandaSkadoosh !  Lessons in Self Management from Kung Fu Panda
Skadoosh ! Lessons in Self Management from Kung Fu Panda
 
Kk dengan jamban yang sehat dari 5 kota
Kk dengan jamban yang sehat dari 5 kota Kk dengan jamban yang sehat dari 5 kota
Kk dengan jamban yang sehat dari 5 kota
 
Zaragoza Turismo 21
Zaragoza Turismo 21Zaragoza Turismo 21
Zaragoza Turismo 21
 
Social media for Associations - Tony De Nazareth
Social media for Associations - Tony De NazarethSocial media for Associations - Tony De Nazareth
Social media for Associations - Tony De Nazareth
 
2016 Summer Camp Checklist
2016 Summer Camp Checklist2016 Summer Camp Checklist
2016 Summer Camp Checklist
 
Resep masakan indonesia praktis
Resep masakan indonesia praktisResep masakan indonesia praktis
Resep masakan indonesia praktis
 
Taiga4lightningtalks
Taiga4lightningtalksTaiga4lightningtalks
Taiga4lightningtalks
 
محمد عساف...مطرب القلوب
محمد عساف...مطرب القلوبمحمد عساف...مطرب القلوب
محمد عساف...مطرب القلوب
 
Kid president presentation 2
Kid president presentation 2Kid president presentation 2
Kid president presentation 2
 
Responsive Design in Higher Education
Responsive Design in Higher EducationResponsive Design in Higher Education
Responsive Design in Higher Education
 
Xarxes Socials-XSJardelA
Xarxes Socials-XSJardelAXarxes Socials-XSJardelA
Xarxes Socials-XSJardelA
 
Customer Service check list
Customer Service check listCustomer Service check list
Customer Service check list
 
Welcome back, GlassFish!
Welcome back, GlassFish!Welcome back, GlassFish!
Welcome back, GlassFish!
 
Social Network Analysis Of Intangibles
Social Network Analysis Of IntangiblesSocial Network Analysis Of Intangibles
Social Network Analysis Of Intangibles
 
Hashtags & Retweets: Using Twitter to aid Community, Communication and Casual...
Hashtags & Retweets: Using Twitter to aid Community, Communication and Casual...Hashtags & Retweets: Using Twitter to aid Community, Communication and Casual...
Hashtags & Retweets: Using Twitter to aid Community, Communication and Casual...
 
Guia de estudio saso ii
Guia de estudio saso iiGuia de estudio saso ii
Guia de estudio saso ii
 
Simple School Lunch Ideas
Simple School Lunch IdeasSimple School Lunch Ideas
Simple School Lunch Ideas
 
PRywatki na Wykładzinie bez krawatów vol.1 - Po co dane w komunikacji w socia...
PRywatki na Wykładzinie bez krawatów vol.1 - Po co dane w komunikacji w socia...PRywatki na Wykładzinie bez krawatów vol.1 - Po co dane w komunikacji w socia...
PRywatki na Wykładzinie bez krawatów vol.1 - Po co dane w komunikacji w socia...
 
気象庁発表の地震情報
気象庁発表の地震情報気象庁発表の地震情報
気象庁発表の地震情報
 

Semelhante a [JavaOne Tokyo 2012] JavaFX and Web Integration

企業システムで使えるマイクロサービスの特長と実践 (Oracle Cloudウェビナーシリーズ: 2021年4月15日)
企業システムで使えるマイクロサービスの特長と実践 (Oracle Cloudウェビナーシリーズ: 2021年4月15日)企業システムで使えるマイクロサービスの特長と実践 (Oracle Cloudウェビナーシリーズ: 2021年4月15日)
企業システムで使えるマイクロサービスの特長と実践 (Oracle Cloudウェビナーシリーズ: 2021年4月15日)オラクルエンジニア通信
 
マイクロソフトにとってのWebって?
マイクロソフトにとってのWebって?マイクロソフトにとってのWebって?
マイクロソフトにとってのWebって?Microsoft
 
Monacaでつくるハイブリッドアプリ
MonacaでつくるハイブリッドアプリMonacaでつくるハイブリッドアプリ
MonacaでつくるハイブリッドアプリMonaca
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発Akira Inoue
 
Java fx勉強会lt 第8回
Java fx勉強会lt 第8回Java fx勉強会lt 第8回
Java fx勉強会lt 第8回Taiji Miyabe
 
今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJavaTakashi Ito
 
PlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocketPlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocketKazuhiro Hara
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireAkio Katayama
 
Windows Azure 上で Eclipse と WebLogic Server 12c で JavaEE6 開発
Windows Azure 上で Eclipse と WebLogic Server 12c で JavaEE6 開発Windows Azure 上で Eclipse と WebLogic Server 12c で JavaEE6 開発
Windows Azure 上で Eclipse と WebLogic Server 12c で JavaEE6 開発normalian
 
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-PE-BANK
 
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介david9142
 
Introduction to web development 1
Introduction to web development 1Introduction to web development 1
Introduction to web development 1hideaki honda
 
PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化Takashi Okamoto
 
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Akira Inoue
 

Semelhante a [JavaOne Tokyo 2012] JavaFX and Web Integration (20)

企業システムで使えるマイクロサービスの特長と実践 (Oracle Cloudウェビナーシリーズ: 2021年4月15日)
企業システムで使えるマイクロサービスの特長と実践 (Oracle Cloudウェビナーシリーズ: 2021年4月15日)企業システムで使えるマイクロサービスの特長と実践 (Oracle Cloudウェビナーシリーズ: 2021年4月15日)
企業システムで使えるマイクロサービスの特長と実践 (Oracle Cloudウェビナーシリーズ: 2021年4月15日)
 
SimpleModeler
SimpleModelerSimpleModeler
SimpleModeler
 
マイクロソフトにとってのWebって?
マイクロソフトにとってのWebって?マイクロソフトにとってのWebって?
マイクロソフトにとってのWebって?
 
Monacaでつくるハイブリッドアプリ
MonacaでつくるハイブリッドアプリMonacaでつくるハイブリッドアプリ
Monacaでつくるハイブリッドアプリ
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
 
Springの今
Springの今Springの今
Springの今
 
Java fx勉強会lt 第8回
Java fx勉強会lt 第8回Java fx勉強会lt 第8回
Java fx勉強会lt 第8回
 
今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava
 
110409 slintky lt
110409 slintky lt110409 slintky lt
110409 slintky lt
 
PlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocketPlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocket
 
Mvc conf session_5_isami
Mvc conf session_5_isamiMvc conf session_5_isami
Mvc conf session_5_isami
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
 
Windows Azure 上で Eclipse と WebLogic Server 12c で JavaEE6 開発
Windows Azure 上で Eclipse と WebLogic Server 12c で JavaEE6 開発Windows Azure 上で Eclipse と WebLogic Server 12c で JavaEE6 開発
Windows Azure 上で Eclipse と WebLogic Server 12c で JavaEE6 開発
 
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
 
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
 
Backbone.js入門
Backbone.js入門Backbone.js入門
Backbone.js入門
 
Ptt391
Ptt391Ptt391
Ptt391
 
Introduction to web development 1
Introduction to web development 1Introduction to web development 1
Introduction to web development 1
 
PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化
 
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
 

Mais de Kazuchika Sekiya

10分でわかるOpenAPI V3
10分でわかるOpenAPI V310分でわかるOpenAPI V3
10分でわかるOpenAPI V3Kazuchika Sekiya
 
Apigee x Drupal: APIエコノミーを支える開発者ポータル
Apigee x Drupal: APIエコノミーを支える開発者ポータルApigee x Drupal: APIエコノミーを支える開発者ポータル
Apigee x Drupal: APIエコノミーを支える開発者ポータルKazuchika Sekiya
 
Routeサービスを使ったCloud FoundryアプリのAPI管理
Routeサービスを使ったCloud FoundryアプリのAPI管理Routeサービスを使ったCloud FoundryアプリのAPI管理
Routeサービスを使ったCloud FoundryアプリのAPI管理Kazuchika Sekiya
 
Apigee+OASでらくらくAPI開発(予定)
Apigee+OASでらくらくAPI開発(予定)Apigee+OASでらくらくAPI開発(予定)
Apigee+OASでらくらくAPI開発(予定)Kazuchika Sekiya
 
OpenAPI Specification概要
OpenAPI Specification概要OpenAPI Specification概要
OpenAPI Specification概要Kazuchika Sekiya
 
G* Workshop in Fukuoka - Introduction
G* Workshop in Fukuoka - IntroductionG* Workshop in Fukuoka - Introduction
G* Workshop in Fukuoka - IntroductionKazuchika Sekiya
 
[English version] JavaFX and Web Integration
[English version] JavaFX and Web Integration[English version] JavaFX and Web Integration
[English version] JavaFX and Web IntegrationKazuchika Sekiya
 
「プログラミングGroovy」発売予告
「プログラミングGroovy」発売予告「プログラミングGroovy」発売予告
「プログラミングGroovy」発売予告Kazuchika Sekiya
 
「プログラミングGroovy」Groovyってなんだろ?編
「プログラミングGroovy」Groovyってなんだろ?編「プログラミングGroovy」Groovyってなんだろ?編
「プログラミングGroovy」Groovyってなんだろ?編Kazuchika Sekiya
 
GroovyなGAE/J Gaelykでかんたんbot工作
GroovyなGAE/J Gaelykでかんたんbot工作GroovyなGAE/J Gaelykでかんたんbot工作
GroovyなGAE/J Gaelykでかんたんbot工作Kazuchika Sekiya
 
お題でGroovyプログラミング: Part A
お題でGroovyプログラミング: Part Aお題でGroovyプログラミング: Part A
お題でGroovyプログラミング: Part AKazuchika Sekiya
 
Groovy/Grails on Google App Engine <シンプル導入編>
Groovy/Grails on Google App Engine <シンプル導入編>Groovy/Grails on Google App Engine <シンプル導入編>
Groovy/Grails on Google App Engine <シンプル導入編>Kazuchika Sekiya
 

Mais de Kazuchika Sekiya (17)

10分でわかるOpenAPI V3
10分でわかるOpenAPI V310分でわかるOpenAPI V3
10分でわかるOpenAPI V3
 
Apigee x Drupal: APIエコノミーを支える開発者ポータル
Apigee x Drupal: APIエコノミーを支える開発者ポータルApigee x Drupal: APIエコノミーを支える開発者ポータル
Apigee x Drupal: APIエコノミーを支える開発者ポータル
 
Routeサービスを使ったCloud FoundryアプリのAPI管理
Routeサービスを使ったCloud FoundryアプリのAPI管理Routeサービスを使ったCloud FoundryアプリのAPI管理
Routeサービスを使ったCloud FoundryアプリのAPI管理
 
Apigee+OASでらくらくAPI開発(予定)
Apigee+OASでらくらくAPI開発(予定)Apigee+OASでらくらくAPI開発(予定)
Apigee+OASでらくらくAPI開発(予定)
 
OpenAPI Specification概要
OpenAPI Specification概要OpenAPI Specification概要
OpenAPI Specification概要
 
G* Workshop in Fukuoka - Introduction
G* Workshop in Fukuoka - IntroductionG* Workshop in Fukuoka - Introduction
G* Workshop in Fukuoka - Introduction
 
[English version] JavaFX and Web Integration
[English version] JavaFX and Web Integration[English version] JavaFX and Web Integration
[English version] JavaFX and Web Integration
 
JGGUG合宿2011報告
JGGUG合宿2011報告JGGUG合宿2011報告
JGGUG合宿2011報告
 
GroovyFX
GroovyFXGroovyFX
GroovyFX
 
GDK48
GDK48GDK48
GDK48
 
「プログラミングGroovy」発売予告
「プログラミングGroovy」発売予告「プログラミングGroovy」発売予告
「プログラミングGroovy」発売予告
 
「プログラミングGroovy」Groovyってなんだろ?編
「プログラミングGroovy」Groovyってなんだろ?編「プログラミングGroovy」Groovyってなんだろ?編
「プログラミングGroovy」Groovyってなんだろ?編
 
Gaelyk
GaelykGaelyk
Gaelyk
 
"G"はGrapeのG
"G"はGrapeのG"G"はGrapeのG
"G"はGrapeのG
 
GroovyなGAE/J Gaelykでかんたんbot工作
GroovyなGAE/J Gaelykでかんたんbot工作GroovyなGAE/J Gaelykでかんたんbot工作
GroovyなGAE/J Gaelykでかんたんbot工作
 
お題でGroovyプログラミング: Part A
お題でGroovyプログラミング: Part Aお題でGroovyプログラミング: Part A
お題でGroovyプログラミング: Part A
 
Groovy/Grails on Google App Engine <シンプル導入編>
Groovy/Grails on Google App Engine <シンプル導入編>Groovy/Grails on Google App Engine <シンプル導入編>
Groovy/Grails on Google App Engine <シンプル導入編>
 

Último

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Último (7)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

[JavaOne Tokyo 2012] JavaFX and Web Integration

  • 1. 1 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 2. JavaFX and Web Integration 日本オラクル株式会社 Java Embedded Global Business Unit 2 関谷 和愛 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 3. 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。ま た、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはでき ません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約 )するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラク ル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の 裁量により決定されます。 OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。 3 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 4. Servers Desktop Embedded TV Mobile Card BD-J Key APIs Java EE JavaFX Java TV MSA Platform Java SE Java ME Java Card Language Java Language Java Platform 4 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 5. JavaFXとは 次世代Javaクライアントソリューション メディア Web 動画・音声 HTML5/CSS3/JavaScript アニメーション エフェクト 高度なグラフィックス 3D 5 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 6. JavaFX 2.0アーキテクチャ 6 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 7. アジェンダ • Webコンポーネントの概要 • API: WebEngineとWebView • より高度な連携 7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 8. JavaFXのWebコンポーネント • 本格的なブラウザを内蔵 – HTML4およびHTML5の一部をサポート – JavaScriptエンジン – LiveConnect対応 – DOMアクセス – SVGサポート 8 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 9. Webコンポーネントの利用シーン • Webコンテンツの表示 – リモートはもちろんローカル生成コンテンツも • Webアプリケーションの埋め込み – JavaからWebアプリをコントロール – Webアプリと多彩なJavaライブラリを融合 9 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 10. Webコンポーネントの実装 • WebKitベース – ネットワーク機能はjava.netを利用 – レンダリングにはJavaFX(Prism)を利用 • シーングラフノードとして提供 – エフェクトやトランジションなどを適用可能 10 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 11. Webコンポーネントのパフォーマンス Windows • GUIMark2 HTML5テスト http://www.craftymind.com/guimark2 Vector Test Bitmap Test Text Test Chrome 16.4 22.1 20.6 17.0 Firefox 12.2 9.8 28.4 10.0.2 JavaFX 15.1 30.2 5.8 2.0.3 Windows 7 Professional / Intel Core 2 Duo 2.53GHz / RAM 4.0GB 11 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 12. Webコンポーネントのパフォーマンス Mac • GUIMark2 HTML5テスト http://www.craftymind.com/guimark2 Vector Test Bitmap Test Text Test Chrome 16.9 56 18.9 18.0 Safari 3.5 14.5 23.8 5.1.5 JavaFX 15.5 31.1 7.0 2.1 beta b19 MacOSX 10.6.8 / Intel Core 2 Duo 2.13GHz / RAM 4.0GB 12 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 13. DEMO 13 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 14. アジェンダ • Webコンポーネントの概要 • API: WebEngineとWebView • より高度な連携 14 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 15. WebEngineとWebView 15 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 16. WebEngine package javafx.scene.web; • ビューではなく機能を提供 – Webページのロード – スクリプトの実行 – DOMアクセス • WebVeiwとは独立に利用可能 16 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 17. WebView package javafx.scene.web; • シーングラフノードとしてビューを提供 – Webページを表示 • 連動するWebEngineを1個持つ – 生成時に自動的に作られ変更は不可 – WebView.getEngine() で取得 17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 18. WebEngineの主なメソッド メソッド 説明 void load(String url) 指定したWebページをロード void loadContent(String content) HTMLを直接ロード void reload() リロード Worker getLoadWorker() ロード状況監視用のWorkerを取得 Object executeScript(String script) JavaScriptを実行 Document getDocument() DOMを取得 18 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 19. ロード状況の監視とキャンセル package javafx.concurrent; • Webページのロードは非同期に行われる • WebEngineから取得したWorkerを利用する – 状態遷移 • state: READY→SCHEDULED→RUNNING→SUCCEEDED/FAILED/CANCE LED – 進捗状況 • progress (0〜1) • totalWork, workDone (全体作業量と終了分) – キャンセル • cancel() 19 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 20. Webコンポーネントの基本的な利用例 import javafx.scene.web.WebView; import javafx.scene.web.WebEngine; WebView view = new WebView(); // シーングラフに追加 // WebEngineを取得 WebEngine engine = view.getEngine(); // ページをロード engine.load("http://javafx.com"); 20 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 21. DEMO 21 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 22. アジェンダ • Webコンポーネントの概要 • API: WebEngineとWebView • より高度な連携 22 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 23. DOM (Document Object Model) アクセス • WebEngineのgetDocumentメソッド、documentプロパティ – ページのロード時に初期化 – プロパティ自体はReadOnlyだがドキュメント構造は変更可能 23 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 24. DOMの変更の例 Document = engine.getDocument(); Element para2 = doc.getElementById("para2"); Element newp = doc.createElement("p"); newp.appendChild(doc.createTextNode("new paragraph")); para2.getParentNode().insertBefore(newp, para2); 24 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 25. DEMO 25 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 26. contentEditable • HTML5でサポートされる属性 • 要素を編集可能にする例: // DOMのElementインタフェースを使用 inputLine.setAttribute("contenteditable", "true"); // またはJSObjectにキャストして ((JSObject)inputLine).setMember("contentEditable", true) 26 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 27. JavaScriptの実行 • WebEngine.executeScriptメソッド – 現在のコンテキストで任意のJavaScript式を評価できる public String getPath() { return (String)webEngine.executeScript("location.pathname"); } 27 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 28. JavaScript値のJavaへの変換 JavaScript Java null null undefined “undefined” 数値 java.lang.Number (Integer または Double) 文字列 java.lang.String ブール値 java.lang.Boolean オブジェクト netscape.javascript.JSObject 28 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 29. JSObject package netscape.javascript; • JavaScriptオブジェクトのラッパークラス • LiveConnectで規定されたAPI 主なメソッド 説明 Object getMember(String name) メンバーの取得 void setMember(String name, Object value) メンバーの設定 void removeMember(String name) メンバーの削除 Object call(String method, Object[] args) メソッド呼び出し 29 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 30. JSObjectとDOM • DOMノードはJSObjectもimplementsしている – 同じオブジェクトがWebKitのnative DOMとJS DOMの両方をラップ • キャストしてJSObjectとしても扱える Element inputLine = ...; // DOM要素を取得 // JSObjectとして扱う ((JSObject)inputLine).call("focus"); 30 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 31. JavaScriptからのJava呼び出し • インタフェースオブジェクトを作り、JSObjectにsetMemeber →JavaScriptから呼び出し可能に 31 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 32. JavaScriptからのJava呼び出し class Bridge { public void exit() { Platform.exit(); } } JSObject jsobj = (JSObject)webEngine.executeScript("window"); jsobj.setMember("java", new Bridge()); <p>Click <a href="" onclick="java.exit();">here</a> to exit the application</p> 32 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 33. スレッドについての注意 • JavaFXはSwing同様シングルスレッドポリシー • WebKitもシングルスレッドポリシー →WebコンポーネントにはJavaFXのアプリケーションスレッドか らアクセスしなければならない – javafx.application.PlatformのrunLaterメソッドを利用 33 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 34. DEMO 34 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 35. WiiリモコンでGoogle Mapをコントロール WiiRemoteJ BlueCove Googleマップ Bluetooth JavaScript API 呼び出し WebEngine/WebView Wiiリモコン 35 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 36. TwitterストリームとHTML5の連動 Ball Pool Streaming API JavaScript呼び出し createBall() WebEngine/WebView 36 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 37. まとめ JavaFX and Web Integration • JavaFXは強力なWebコンポーネントを標準装備 – WebKitベースの本格的な内蔵ブラウザ • HTML5にも部分対応 • 高性能 – Java・Webアプリ間の連携APIを提供 • JavaScript実行 • DOMアクセス →WebとJavaを融合した新しいアプリ開発が可能に! 37 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 38. JavaOne Tokyo 2012: JavaFXコンテンツ 今後のセッション • JS1-23 JavaFX + FXML + CSS = Javaの次世代GUI [CFPセッション] • JS1-32 Introduction to the JavaFX Scene Builder • JS2-02 JavaFX Architecture and Programming Model • JS2-32 Interface Layout with JavaFX 2.0 • JS2-42 UI Controls and Charts: Drag-and-Drop, Filtering, Sorting, Table Hookup with Charts 38 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 39. JavaOne Tokyo 2012: JavaFXコンテンツ ハンズオン・展示 • JH2-01 JavaFX 2.0によるリッチグラフィカルア プリケーション開発 [ハンズオン] • Oracle DEMOgrounds: JavaFX Labs 39 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 40. 40 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 41. 41 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.