Successfully reported this slideshow.
Your SlideShare is downloading. ×

Jjugccc2017spring m6 javafx

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 22 Ad

Jjugccc2017spring m6 javafx

Download to read offline

JavaFX Desktop gadget programming, Japan Java User Group Cross Community Conference 2017 Spring.
Programming a desktop gadget like program with JavaFX.
Transparent window, with moving by dragging, resizing by wheeling, and closing by pop up menu.
Saving status on closing window, load status on start using Java Preferences API.
Reduce using of CPU and memory resources, by JVM options.
1-File deploy of executable JAR file with start script (batch) file, by concatinate script file with jar file.

JavaFX Desktop gadget programming, Japan Java User Group Cross Community Conference 2017 Spring.
Programming a desktop gadget like program with JavaFX.
Transparent window, with moving by dragging, resizing by wheeling, and closing by pop up menu.
Saving status on closing window, load status on start using Java Preferences API.
Reduce using of CPU and memory resources, by JVM options.
1-File deploy of executable JAR file with start script (batch) file, by concatinate script file with jar file.

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Similar to Jjugccc2017spring m6 javafx (20)

Advertisement

Recently uploaded (20)

Advertisement

Jjugccc2017spring m6 javafx

  1. 1. JJUG CCC 2017 Spring #ccc_m6 高橋 徹 @boochnich
  2. 2. ・1996年よりJavaに触れる ・Java GUIは、AWT、Swing、JavaFX 他は、X Window System/Motif、GTK+、Qt、Visual C++/MFC等 ・コミュニティ活動 - Java読書会BOF(代表) http://www.javareading.com/bof/ ・ホームページ・ブログ等 http://www.02.246.ne.jp/~torutk/ (ホームページ) http://d.hatena.ne.jp/torutk/ (ブログ) http://www.torutk.com (Redmine)
  3. 3. ・ガジェット風なプログラムとは ・JavaFXで作る ・プログラムの配布と実行
  4. 4. デスクトップの片隅で動く、ちょっとしたGUI プログラム ・ウィンドウ枠非表示 ・背景非表示 ・タッチパネル対応 ・前回状態の保存 ・省CPU/省メモリ
  5. 5. ・Stage:トップレベルウィンドウ   - ウィンドウ枠 ・Scene:ウィンドウ内のコンテンツをまとめ たもの   - 背景塗りつぶし ・シーングラフ:画面を構成する要素のツリー
  6. 6. ・Javaソースコード (must) ・FXML: シーングラフの定義 (option) ・CSS : 見栄えの定義 (option) - 外部CSSファイル - Javaソースコード/FXMLに記述
  7. 7. ・Oracle Java SE 8 Development Kit(JDK) ・好みのIDE(例:NetBeans) ・Scene Builder : 画面作成 ・Scenic View : 画面デバッグ
  8. 8. ウィンドウ枠がないと困ったことに・・・ (1)ウィンドウを移動できない (2)ウィンドウの大きさを変えられない (3)終了させられない ⇒ マウスドラッグで移動 ⇒ Ctrlキー + ホイールで大きさを変更 ⇒ ポップアップメニューで終了
  9. 9. (1) ウィンドウを移動する ⇒ マウスドラッグ (2) ウィンドウの大きさを変える ⇒ Ctrl+マウスホイール (3) ウィンドウを閉じる ⇒ コンテキストメニュー
  10. 10. (1) ウィンドウを移動する    スクロール(ドラッグ、スワイプ、スライド)    ⇒ 対処不要 (2) ウィンドウの大きさを変える    ズーム(ピンチ、ストレッチ)    ⇒ 要対処 (3) ウィンドウを閉じる(コンテキストメニュー)    ⾧いタッチ(タッチ&ホールド、ロングプレス)    ⇒ 対処不要
  11. 11. ・プログラム終了時、表示位置/大きさを保存 ・次回起動時、前回保存した状態に復元 ⇒ Preferences APIを使う(Java SE標準)
  12. 12. (1) プログラム終了時、状態保存 (2) 前回保存した状態に復元
  13. 13. ・JVM 64bit上でJavaFX Helloプログラムは…  - メモリ:500MB (※32GBメモリ搭載PCで実行時)  - スレッド:40  - GCでCPU酷使   パラレルコレクタは搭載CPUの総スレッド数を使用  - JITコンパイルスレッド ・省リソース(メモリ・CPU)の方針  - JVMオプションでガシガシ調整  - 32bit版JVMを使う
  14. 14. JVMオプションでガシガシ調整 ・メモリサイズの調整  -Xms (初期ヒープサイズ) -Xmx (最大ヒープサイズ)  -Xss (スタックサイズ)  -XX:InitialCodeCacheSize (初期コードキャッシュサイズ)  -XX:ReservedCodeCacheSize (最大コードキャッシュサイズ) ・GCの指定   -XX:+UseSerialGC (シリアル型GCを使用) ・JITコンパイル  -XX:TieredStopAtLevel (階層コンパイルの遷移上限)  -XX:CICompilerCount  (JITコンパイルスレッド数)  -XX:CompileThreshold 他 (JITコンパイル実施閾値)
  15. 15. ・ネイティブインストーラー - JREとアプリを一緒に配布 - OS固有のインストーラー形式 Windows: exe、 msi Linux: deb、rpm Mac OS X: dmg、 pkg、 app store ⇒ 32bit JVMと一緒に配布し実行が可能
  16. 16. JAR + シェルスクリプト/バッチファイルを 一つのファイルに結合 ・作成と実行例(Windows/バッチファイ... tiny.src.bat - 起動コマンドを記述したバッチファイル tiny.jar - 実行可能JARファイル C:work> copy /b tiny.src.bat+tiny.jar tiny.bat C:work> tiny
  17. 17. (1) 起動コマンドを記述したバッチファイル (2) バッチファイルとJARファイルの結合
  18. 18. (1) アナログ時計 (2) カレンダー (3) 3D地球表示 (4) 画像ビューア
  19. 19. ・サンプルコード(TinyGadget、画像ビューア) https://github.com/torutk/jjugccc2017spring-javafx ・本発表の準備ページ https://goo.gl/CNdVjL ・アナログ時計 https://github.com/torutk/analogclock ・カレンダー https://github.com/torutk/calendar ・スライドビューア https://github.com/torutk/javaslideviewer ・JJUG CCC 2016 Spring (ネイティブインストーラ) https://goo.gl/uY0Rzc ・JJUG CCC 2015 Spring (アナログ時計) https://goo.gl/hWQa3M
  20. 20. ・Scene Builderダウンロード http://gluonhq.com/products/scene-builder/ ・Scenic View http://fxexperience.com/scenic-view/ ・Java SE 8 クライアントテクノロジ ドキュメント http://docs.oracle.com/javase/jp/8/ javase-clienttechnologies.htm ・日本JavaFXユーザーグループ https://groups.google.com/forum/#!forum/javafx-ja
  21. 21. ・ Java SE 8u60から本格対応(JavaFX) - Java SE 9からSwingも対応 ・ 様々なDPIのディスプレイに対応 ・ JVMオプションでHiDPI対応有無指定可   -Dprism.allowhidpi=<true|false>     デフォルト:true

×