Submit Search
Upload
JavaFXでマルチタッチプログラミング
•
4 likes
•
7,543 views
Takashi Aoe
Follow
第8回JavaFX勉強会の発表資料です。
Read less
Read more
Report
Share
Report
Share
1 of 21
Download now
Download to read offline
Recommended
DOMイベントの基礎から深淵まで
DOMイベントの基礎から深淵まで
Masayuki Nakano
DOMイベントの基礎から、細かい情報まで、最新のDOMイベントの仕様策定状況も含めて、解説しています。
Segue, Landscape, Touch events, Alpha and User Defined Runtime Attributes
Segue, Landscape, Touch events, Alpha and User Defined Runtime Attributes
Yutaka Yasuda
2012/6 の iPhone プログラミング勉強会京都むけ発表会資料の公開版。Wolfram Alpha (Mathematica) で解いた処理があったので、日本語版サービス開始に合わせて発掘。
Moony li pacsec-1.5_j4-truefinal
Moony li pacsec-1.5_j4-truefinal
PacSecJP
PacSec2016
iOSハンズオントレーニング observer編 (delegate,notification,KVO)
iOSハンズオントレーニング observer編 (delegate,notification,KVO)
聡 大久保
Observerパターンについて、Delegate,Notification,KVOを使って実装する方法を学びます。
Unityクリエイターズ勉強会【2/2】【関西】発表資料
Unityクリエイターズ勉強会【2/2】【関西】発表資料
Masataka Motokurumada
https://dl.dropbox.com/u/37779475/20130130UniBen/Desktop.html このゲームの作り方の資料です GoogleDriveにも資料があります https://docs.google.com/presentation/d/1fA7KhnVIC6F08CURKqXnrv_Z5p30K5wBj5ddFiVVayY/edit?pli=1#slide=id.g9aaefe24_089
大規模分散システムの現在 -- Twitter
大規模分散システムの現在 -- Twitter
maruyama097
マルレク2015 第二回「大規模分散システムの現在 -- Twitter」講演資料
Boost9 session
Boost9 session
freedom404
Android Lecture #03 @PRO&BSC Inc.
Android Lecture #03 @PRO&BSC Inc.
Yuki Higuchi
2012/03/14 に株式会社 PRO&BSC にて行った Android 研修の資料 #3 です。
Recommended
DOMイベントの基礎から深淵まで
DOMイベントの基礎から深淵まで
Masayuki Nakano
DOMイベントの基礎から、細かい情報まで、最新のDOMイベントの仕様策定状況も含めて、解説しています。
Segue, Landscape, Touch events, Alpha and User Defined Runtime Attributes
Segue, Landscape, Touch events, Alpha and User Defined Runtime Attributes
Yutaka Yasuda
2012/6 の iPhone プログラミング勉強会京都むけ発表会資料の公開版。Wolfram Alpha (Mathematica) で解いた処理があったので、日本語版サービス開始に合わせて発掘。
Moony li pacsec-1.5_j4-truefinal
Moony li pacsec-1.5_j4-truefinal
PacSecJP
PacSec2016
iOSハンズオントレーニング observer編 (delegate,notification,KVO)
iOSハンズオントレーニング observer編 (delegate,notification,KVO)
聡 大久保
Observerパターンについて、Delegate,Notification,KVOを使って実装する方法を学びます。
Unityクリエイターズ勉強会【2/2】【関西】発表資料
Unityクリエイターズ勉強会【2/2】【関西】発表資料
Masataka Motokurumada
https://dl.dropbox.com/u/37779475/20130130UniBen/Desktop.html このゲームの作り方の資料です GoogleDriveにも資料があります https://docs.google.com/presentation/d/1fA7KhnVIC6F08CURKqXnrv_Z5p30K5wBj5ddFiVVayY/edit?pli=1#slide=id.g9aaefe24_089
大規模分散システムの現在 -- Twitter
大規模分散システムの現在 -- Twitter
maruyama097
マルレク2015 第二回「大規模分散システムの現在 -- Twitter」講演資料
Boost9 session
Boost9 session
freedom404
Android Lecture #03 @PRO&BSC Inc.
Android Lecture #03 @PRO&BSC Inc.
Yuki Higuchi
2012/03/14 に株式会社 PRO&BSC にて行った Android 研修の資料 #3 です。
Weeyble async 181009_tukky
Weeyble async 181009_tukky
shotaueda3
Weeyble 非同期勉強会の資料です。 Previewでは日本語が表示されません フルスクリーンでご覧ください https://weeyble-game.connpass.com/event/101975/
Arctic.js
Arctic.js
chikathreesix
Android Bazaar and Conferenceでの講演資料です
Lt 111217
Lt 111217
Tomoyuki Obi
2011/12/17 ハイパーカソウ化にておこった LT [アレっぽく Hyper-V を管理]
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
Yuichi Sakuraba
Japan Java User Group Cross Community Conferece 2012 Spring "From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド"
JavaScript入門
JavaScript入門
Ryo Maruyama
Composable Callbacks & Listeners
Composable Callbacks & Listeners
Taisuke Oe
Functional Scala Meetup Event #関数型Scala
Leap Motion - 1st Review
Leap Motion - 1st Review
Tsukasa Sugiura
2013/3/12 Leap Motion 1st Review Original PowerPoint File Download : http://sdrv.ms/YdnyjD
Ajax 応用
Ajax 応用
Katsuyuki Seino
HoloLensハンズオン:AirTap & SpatialMapping編
HoloLensハンズオン:AirTap & SpatialMapping編
Takashi Yoshinaga
1/7,8,14,28に開催されたARコンテンツ作成勉強会の演習パート資料。 ※Unityの使い方の基礎に関する演習も行う都合上、回りくどい部分があります。
Scikit-learn and TensorFlow Chap-14 RNN (v1.1)
Scikit-learn and TensorFlow Chap-14 RNN (v1.1)
孝好 飯塚
「scikit-learnとTensorFlowによる実践機械学習」輪講会の「14章 再帰型ニューラルネットワーク」紹介資料。(v1.1)
Lt 110205
Lt 110205
Tomoyuki Obi
2011/02/05 CLR/H にて行った LT [ワークステーションロック?]
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
2年ぐらい前の社内勉強会で使った資料。
Lightweight Language Tiger 2010
Lightweight Language Tiger 2010
biscuitjam
Presentation slide of Physical Computing session in LLTiger 2010
Lightweight Language Tiger 2010
Lightweight Language Tiger 2010
biscuitjam
Chromeでjavascriptデバッグ!まず半歩♪
Chromeでjavascriptデバッグ!まず半歩♪
Yuji Nojima
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Atsushi Tadokoro
ApexトリガのBest Practiceを目指して
ApexトリガのBest Practiceを目指して
Takahiro Yonei
Apex Trigger (Tokyo Salesforce Developer Group Meetup #18)
for JSDeferred Code Reading
for JSDeferred Code Reading
Kenichirou Oyama
StackStormを活用した運用自動化の実践
StackStormを活用した運用自動化の実践
Shu Sugimoto
昨今、あらゆる場面において「運用の自動化」が叫ばれるようになり、その重要性は日に日に増してきています。 しかし、実際に着手しようとしてみると、一筋縄ではいかないことが多いのではないでしょうか。その理由の一つに、既存の運用手順等が「自動化に向いていない」ことが挙げられると思います。既に運用しているものがあるところで、自動化を理由に「すっぱりと運用を変える」というのは、かなり難易度が高く、また時間を要するものです。 本プレゼンテーションでは、こういった「運用の自動化」に対する課題を、StackStormを活用することでどのように解決していけるのか、弊社インターネットマルチフィードにおけるJPNAPサービスの運用自動化での実例を交えながら、ご紹介いたします。
React でフォームをスマートに実装する【weseek tech conf #11】
React でフォームをスマートに実装する【weseek tech conf #11】
WESEEKWESEEK
WESEEK Tech Conferenceは、株式会社WESEEKが主催するエンジニア向けの勉強会です。 月に2回ほど、WESEEKに所属するエンジニアが様々なテーマで発表を行う予定です。 第11回はシステムエンジニアの藤澤さんが登壇! 初心者の方向けに、Form の基礎やReact でのフォームの使い方、そしてReactHookForm を使った便利なフォームの作り方を解説します!
AsakusaのドキュメントをDashで見たい
AsakusaのドキュメントをDashで見たい
Takashi Aoe
JavaOneで聴いてきたディープなJavaFXセッション
JavaOneで聴いてきたディープなJavaFXセッション
Takashi Aoe
2013/12/13 JavaOne勉強会の発表資料です。
More Related Content
Similar to JavaFXでマルチタッチプログラミング
Weeyble async 181009_tukky
Weeyble async 181009_tukky
shotaueda3
Weeyble 非同期勉強会の資料です。 Previewでは日本語が表示されません フルスクリーンでご覧ください https://weeyble-game.connpass.com/event/101975/
Arctic.js
Arctic.js
chikathreesix
Android Bazaar and Conferenceでの講演資料です
Lt 111217
Lt 111217
Tomoyuki Obi
2011/12/17 ハイパーカソウ化にておこった LT [アレっぽく Hyper-V を管理]
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
Yuichi Sakuraba
Japan Java User Group Cross Community Conferece 2012 Spring "From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド"
JavaScript入門
JavaScript入門
Ryo Maruyama
Composable Callbacks & Listeners
Composable Callbacks & Listeners
Taisuke Oe
Functional Scala Meetup Event #関数型Scala
Leap Motion - 1st Review
Leap Motion - 1st Review
Tsukasa Sugiura
2013/3/12 Leap Motion 1st Review Original PowerPoint File Download : http://sdrv.ms/YdnyjD
Ajax 応用
Ajax 応用
Katsuyuki Seino
HoloLensハンズオン:AirTap & SpatialMapping編
HoloLensハンズオン:AirTap & SpatialMapping編
Takashi Yoshinaga
1/7,8,14,28に開催されたARコンテンツ作成勉強会の演習パート資料。 ※Unityの使い方の基礎に関する演習も行う都合上、回りくどい部分があります。
Scikit-learn and TensorFlow Chap-14 RNN (v1.1)
Scikit-learn and TensorFlow Chap-14 RNN (v1.1)
孝好 飯塚
「scikit-learnとTensorFlowによる実践機械学習」輪講会の「14章 再帰型ニューラルネットワーク」紹介資料。(v1.1)
Lt 110205
Lt 110205
Tomoyuki Obi
2011/02/05 CLR/H にて行った LT [ワークステーションロック?]
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
2年ぐらい前の社内勉強会で使った資料。
Lightweight Language Tiger 2010
Lightweight Language Tiger 2010
biscuitjam
Presentation slide of Physical Computing session in LLTiger 2010
Lightweight Language Tiger 2010
Lightweight Language Tiger 2010
biscuitjam
Chromeでjavascriptデバッグ!まず半歩♪
Chromeでjavascriptデバッグ!まず半歩♪
Yuji Nojima
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Atsushi Tadokoro
ApexトリガのBest Practiceを目指して
ApexトリガのBest Practiceを目指して
Takahiro Yonei
Apex Trigger (Tokyo Salesforce Developer Group Meetup #18)
for JSDeferred Code Reading
for JSDeferred Code Reading
Kenichirou Oyama
StackStormを活用した運用自動化の実践
StackStormを活用した運用自動化の実践
Shu Sugimoto
昨今、あらゆる場面において「運用の自動化」が叫ばれるようになり、その重要性は日に日に増してきています。 しかし、実際に着手しようとしてみると、一筋縄ではいかないことが多いのではないでしょうか。その理由の一つに、既存の運用手順等が「自動化に向いていない」ことが挙げられると思います。既に運用しているものがあるところで、自動化を理由に「すっぱりと運用を変える」というのは、かなり難易度が高く、また時間を要するものです。 本プレゼンテーションでは、こういった「運用の自動化」に対する課題を、StackStormを活用することでどのように解決していけるのか、弊社インターネットマルチフィードにおけるJPNAPサービスの運用自動化での実例を交えながら、ご紹介いたします。
React でフォームをスマートに実装する【weseek tech conf #11】
React でフォームをスマートに実装する【weseek tech conf #11】
WESEEKWESEEK
WESEEK Tech Conferenceは、株式会社WESEEKが主催するエンジニア向けの勉強会です。 月に2回ほど、WESEEKに所属するエンジニアが様々なテーマで発表を行う予定です。 第11回はシステムエンジニアの藤澤さんが登壇! 初心者の方向けに、Form の基礎やReact でのフォームの使い方、そしてReactHookForm を使った便利なフォームの作り方を解説します!
Similar to JavaFXでマルチタッチプログラミング
(20)
Weeyble async 181009_tukky
Weeyble async 181009_tukky
Arctic.js
Arctic.js
Lt 111217
Lt 111217
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
JavaScript入門
JavaScript入門
Composable Callbacks & Listeners
Composable Callbacks & Listeners
Leap Motion - 1st Review
Leap Motion - 1st Review
Ajax 応用
Ajax 応用
HoloLensハンズオン:AirTap & SpatialMapping編
HoloLensハンズオン:AirTap & SpatialMapping編
Scikit-learn and TensorFlow Chap-14 RNN (v1.1)
Scikit-learn and TensorFlow Chap-14 RNN (v1.1)
Lt 110205
Lt 110205
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
Lightweight Language Tiger 2010
Lightweight Language Tiger 2010
Lightweight Language Tiger 2010
Lightweight Language Tiger 2010
Chromeでjavascriptデバッグ!まず半歩♪
Chromeでjavascriptデバッグ!まず半歩♪
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
ApexトリガのBest Practiceを目指して
ApexトリガのBest Practiceを目指して
for JSDeferred Code Reading
for JSDeferred Code Reading
StackStormを活用した運用自動化の実践
StackStormを活用した運用自動化の実践
React でフォームをスマートに実装する【weseek tech conf #11】
React でフォームをスマートに実装する【weseek tech conf #11】
More from Takashi Aoe
AsakusaのドキュメントをDashで見たい
AsakusaのドキュメントをDashで見たい
Takashi Aoe
JavaOneで聴いてきたディープなJavaFXセッション
JavaOneで聴いてきたディープなJavaFXセッション
Takashi Aoe
2013/12/13 JavaOne勉強会の発表資料です。
JavaOne2013報告会 LT資料 Hadoopの話を聞いてきた
JavaOne2013報告会 LT資料 Hadoopの話を聞いてきた
Takashi Aoe
JavaOne2013報告会のLT資料です。 JavaOneでHadoopの話を聞いてきたことについてです
JavaOne2013報告会 JavaFX Update
JavaOne2013報告会 JavaFX Update
Takashi Aoe
JavaOne2013報告会 JavaFX Updateの発表資料です
Java Day Tokyo 2013 Java the Night 監視ツールでみるJavaFXとJava EEの魅力
Java Day Tokyo 2013 Java the Night 監視ツールでみるJavaFXとJava EEの魅力
Takashi Aoe
鹿駆動勉強会 青江発表資料
鹿駆動勉強会 青江発表資料
Takashi Aoe
2012/04/29鹿駆動勉強会の青江発表分の資料です
More from Takashi Aoe
(6)
AsakusaのドキュメントをDashで見たい
AsakusaのドキュメントをDashで見たい
JavaOneで聴いてきたディープなJavaFXセッション
JavaOneで聴いてきたディープなJavaFXセッション
JavaOne2013報告会 LT資料 Hadoopの話を聞いてきた
JavaOne2013報告会 LT資料 Hadoopの話を聞いてきた
JavaOne2013報告会 JavaFX Update
JavaOne2013報告会 JavaFX Update
Java Day Tokyo 2013 Java the Night 監視ツールでみるJavaFXとJava EEの魅力
Java Day Tokyo 2013 Java the Night 監視ツールでみるJavaFXとJava EEの魅力
鹿駆動勉強会 青江発表資料
鹿駆動勉強会 青江発表資料
JavaFXでマルチタッチプログラミング
1.
JavaFXでマルチタッチ プログラミング
第8回 JavaFX勉強会 青江 崇(@aoetk)
2.
自己紹介 •
青江 崇 • (株)ノーチラス・テクノロジーズ所属 • Twitter ID: aoetk / Hatena ID: aoe-tk • 最近は分散ミドルの運用周りの基盤開発とかやってま す。 • RIA開発経験があり、JavaFXには個人的な興味で追いか けてます。
3.
今日のお話 •
JavaFXにおけるマルチタッチ対応について紹介します。 • マルチタッチ対応アプリケーションを開発するため に、JavaFXがどのようなAPIを提供しているのか、自分 が調べた範囲で分かったことについて紹介します。 • Windows8を使ってJavaFXマルチタッチアプリケーショ ンの動作デモを行います。
4.
マルチタッチとは何か? •
Wikipediaでは...。 コンピューティングにおけるマルチタッチは表⾯面(トラックパッドやタッチパ ネル)で2点以上のやり取りが存在することを認識識するためのタッチセンシング を指す。この複数点認識識はたびたびピンチ・トゥ・ズームや前もって定義した プログラムのアクティベーションといった⾼高度度な機能を実⾏行行するために使⽤用さ れる。 http://ja.wikipedia.org/wiki/マルチタッチ • 複数箇所のタッチを捉えて、そのタッチポイントの動 きの組み合わせで機能を実行すること、といったとこ ろでしょうか。
5.
JavaFXでのサポートは? •
JavaFX2.2で対応。 • https://blogs.oracle.com/javafx/entry/what_s_new_in_javafx • 主に組み込み機器をメインターゲットとして考えてい る? • 今のところ公式の情報源が少ない状況。 • JavaFXの公式ドキュメントの解説は以下の1ページのみ。 • http://docs.oracle.com/javafx/2/events/gestures.htm#CHDDHFJJ • 後はJavaDocを参照するだけ。
6.
用意されているAPI •
javafx.scene.input パッケージにタッチ及びジェスチャー を表すイベントを用意。 基本的なタッチ タッチ操作を組み合わせて 操作 表現する応用的なイベント
7.
用意されているAPI(続き) •
Sceneクラス及びNodeクラスに対して、これらイベント に対するハンドラを登録可能にしています。 • onTouch**、onRotate**、onScroll**...という名前のプロパ ティがそれ。
8.
TouchEvent •
タッチ操作を扱うための基本的なイベント。 • タッチされたポイントを表すtouchPointプロパティと、 他のタッチポイントの情報も含めたtouchPointsプロパ ティが存在します。 • タッチポイントの情報はTouchPoint型で定義。 • 次の4種類のイベントタイプを定義しています。 • PRESSED(タッチ操作の開始) • MOVED(タッチポイントの移動) • RELEASED(タッチ操作の終了) • STATIONARY(タッチ&ホールド...だと思います) ※イラストはWikipedia(http://ja.wikipedia.org/wiki/マルチタッチ)から引用
9.
GestureEvent •
基本的にTouchEventさえあればタッチした場所の座標 が取得できるのでどんな操作でも実装可能です。 • とは言え、これだけで全ての処理を実装するのは大変 なので、複数のタッチ操作を組み合わせた応用的な GestureEventを用意しています。 • サブクラスとして4種類用意されています。以降、順に 説明します。
10.
RotateEvent •
2本指での回転ジェスチャーを表すイベント。 • 次の3種類のイベントタイプがあり、開始から終了まで 継続的に発生するイベントです。 • ROTATE_STARTED(ジェスチャーの開始) • ROTATE(ジェスチャーが行われている間継続的に発 火) • ROTATE_FINISHED(ジェスチャーの終了) • 回転量はangleとtotalAngleプロパティで取得。 • 時計回りが正。 • 前者がイベント単位での移動量、後者がSTARTEDからの トータルの移動量。 ※イラストはWikipedia(http://ja.wikipedia.org/wiki/マルチタッチ)から引用
11.
ScrollEvent •
対象オブジェクト上で指を滑らせるジェスチャー。 • RotateEventと同様開始から終了まで継続的に発生する イベントです。 • SCROLL_STARTED(ジェスチャーの開始) • SCROLL(ジェスチャーが行われている間継続的に発 火) • SCROLL_FINISHED(ジェスチャーの終了) • 移動量はdeltaX/YとtotalDeltaX/Yプロパティで取得。 • 前者がイベント単位での移動量、後者がSTARTEDからの トータルの移動量。 • タッチ数や慣性スクロールも検出可能! ※イラストはWikipedia(http://ja.wikipedia.org/wiki/マルチタッチ)から引用
12.
SwipeEvent •
対象オブジェクト上で指を払うジェスチャー。 • フリックとも呼びますね。 • ScrollEventと異なり、1回だけ発生するイベント。指を 払い終わった際に動作させたいときに使います。 • 方向に関するイベントタイプが定義されています。 • SWIPE_DOWN • SWIPE_LEFT • SWIPE_RIGHT • SWIPE_UP ※イラストはWikipedia(http://ja.wikipedia.org/wiki/マルチタッチ)から引用
13.
ZoomEvent •
2本指でのピンチアウト・インを行うジェスチャー。 • RotateEventと同様開始から終了まで継続的に発生する イベントです。 • ZOOM_STARTED • ZOOM • ZOOM_FINISHED • 拡大、縮小率をzoomFactorとtotalZoomFactorというプ ロパティで取得。 • 前者がイベント単位での変化率、後者がSTARTEDからの トータルの変化率。 • ジェスチャー開始時を1とする。 • NodeのscaleX/Yプロパティにそのまま設定可能。 ※イラストはWikipedia(http://ja.wikipedia.org/wiki/マルチタッチ)から引用
14.
それではサンプルをお見せし
ます。 サンプルコードURL: https://gist.github.com/4143183
15.
まずデモ環境について •
実はWindows8タブレット持ってません。( ・∀・ ) • (だって今出ている端末でいいのがないんだもの) • MacのVMWare上で動いているWindows8に対してiPadか らリモートデスクトップでアクセスして動かします。 • Win8 Metro Testbed - powered by Splashtop というアプリ を使っています。(http://www.splashtop.com/win8)
16.
TouchEventのサンプル (FXML) <AnchorPane id="Content"> <children>
<Pane fx:id="touchPane" onTouchPressed="#handleTouchStart" .../> (中略) 描画領域の onTouchPressed プロ </children> パティにハンドラを登録。 </AnchorPane> (Controller) @FXML private void handleTouchStart(TouchEvent event) { TouchEvent#getTouchPoint() if (!(event.getTarget() instanceof Circle)) { で取得した座標に円を描画 circleCount++; final TouchPoint point = event.getTouchPoint(); final Circle circle = new Circle(CIRCLE_RADIUS, COLORS[circleCount % 10]); relocateCircle(circle, point.getX(), point.getY()); // →Circleへのタッチイベント追加の解説へ touchPane.getChildren().add(circle); }
17.
TouchEventのサンプル(続き) (Circleへのタッチイベント追加部分のコード) circle.setOnTouchMoved(new TouchMoveHandler(point.getSceneX(), point.getSceneY())); circle.setOnMouseClicked(new EventHandler<MouseEvent>()
{ @Override public void handle(MouseEvent event) { if (event.getClickCount() >= 2) { touchPane.getChildren().remove((Node) event.getTarget()); } タップ、ダブルタップのハンドリ } }); ングは通常のMouseEventでOK。 class TouchMoveHandler implements EventHandler<TouchEvent> { private double startSceneX, startSceneY; タッチ位置のシーングラフ // コンストラクタ省略 前のイベントの座標を記憶 上の座標から円の新しい配 @Override public void handle(TouchEvent event) { final Circle circle = (Circle) event.getTarget(); 置場所を決めている。 final TouchPoint point = event.getTouchPoint(); relocateCircle(circle, point.getSceneX() - startSceneX + circle.getLayoutX(), point.getSceneY() - startSceneY + circle.getLayoutY()); startSceneX = point.getSceneX(); startSceneY = point.getSceneY(); } }
18.
GestureEventのサンプル (FXML) <Rectangle fx:id="rectangle" arcHeight="5.0"
arcWidth="5.0" fill="#ff007a" height="200.0" width="200.0" onRotate="#handleRectanbleRotation" Rectangle の onRotate、onScroll、 onScroll="#handleRectangleScroll" onZoom プロパティにハンドラ を登録。 onZoom="#handleRectangleZoom" stroke="BLACK" strokeType="INSIDE"/>
19.
GestureEventのサンプル(続き) @FXML private void
handleRectangleZoom(ZoomEvent event) { double totalScale = event.getZoomFactor() * rectangle.getScaleX(); rectangle.setScaleX(totalScale); rectangle.setScaleY(totalScale); } @FXML private void handleRectangleRotation(RotateEvent event) { double totalAngle = event.getAngle() + rectangle.getRotate(); rectangle.setRotate(totalAngle); } @FXML private void handleRectangleScroll(ScrollEvent event) { if (!event.isInertia()) { 慣性スクロールではないことをチェック double totalDeltaX = rectangle.getTranslateX() + event.getDeltaX(); double totalDeltaY = rectangle.getTranslateY() + event.getDeltaY(); rectangle.setTranslateX(totalDeltaX); イベントから取得した移動量 rectangle.setTranslateY(totalDeltaY); は、Node の変形、移動のための } } プロパティと単位が同じなので、 そのまま適用可能。
20.
コントロールのタッチ対応例 (FXML) <BorderPane prefHeight="200.0" prefWidth="200.0">
<center> <Pagination fx:id="pagination" styleClass="bullet"/> </center> <right> <ListView fx:id="lvFonts" prefHeight="200.0" prefWidth="230.0" /> </right> </BorderPane> タッチイベントに関する設定は一切なし (Controller) @Override public void initialize(URL url, ResourceBundle rb) { fonts = Font.getFamilies(); pagination.setPageCount(fonts.size() / FONTS_PER_PAGE); pagination.setPageFactory(new Callback<Integer, Node>() { @Override public Node call(Integer idx) { return createPage(idx); } }); lvFonts.setItems(FXCollections.observableArrayList(fonts)); }
21.
まとめ •
JavaFX2.2からマルチタッチ対応アプリケーションを開 発するためのAPIが追加されました。 • 基本的なタッチイベントをハンドルするためのAPIに加 え、応用的なジェスチャーイベントのAPIが強力。高度 な操作をサポートしたアプリケーションを比較的容易 に実装できます。 • Windows8で利用可能です。 みんなもどんどんマルチタッチアプリケーション を作って情報交換しましょう!
Download now