Challenge Java EE !

Java EEを中心に趣味や仕事における開発メモを書いています。

JavaFX Nightに参加しました~ #javafx_ja

最近、勉強会に参加しましたエントリしか書いてない気がするのですが…(^^;

昨日11/25に行われた「JavaFX Night」に参加してきました。

JavaFX Night - 日本 JavaFX ユーザグループ | Doorkeeper

ここ最近JavaFXを触っていないのですが、いつか仕事で使ってみたいと思っているのでネタ収集はしていかないと。

発表はスライドが公開されているのと、@yusukeさんによって早くもYouTubeに動画がアップされているので、参加できなかった方はそちらでみれます!!以下スライドと動画リンクもまとめておきます。

JavaFXにダイアログがやってくる @btnrougeさん

@btnrougeさん講演動画
JavaFXにダイアログがやってくる #javafx_ja #jjug - YouTube

Twitter上で多数「なんで今までダイアログなかったんだ…」とつぶやいてるのが見えたのですが(^^;

やはりGUI作る上では欲しいですよね。

仕事で使う場合には、標準としてダイアログがないと上司が「は?ダイアログもないやつ使うな」とか言いそうで不便かなと。

それにしても蓮沼さんってJava SE, EEそしてJavaFXと、なんでこんな守備範囲広いんだ…すごいなぁ。

HeapStats loves JavaFX @YaSuenagさん

@YaSuenagさん講演動画
今さらはじめるJavaFX 北面 正英 @mshdktom #javafx_ja #jjug - YouTube

Java障害解析支援ツール「HeapStats」のアナライザをSwingからJavaFXへ移行したというお話。

プラグインで新たなタブを追加できるという仕組みが興味深かったです。これ絶対便利そう!

デモをみると、グラフがきれいで、やはりJavaFXいいなーと。

発表内容の後半は、実際の開発における苦労話もあって、細かい所では色々大変なんだなぁと。

とても勉強になりました。

Bind Me Softly @skrbさん

@skrbさん講演動画
Bind Me Softly 櫻庭 祐一 @skrb #javafx_ja #jjug - YouTube

日本で一番JavaFXについて詳しく書かれている「JavaFX 2で始めるGUI開発」の著者である櫻庭さんからのお話。
「JavaFX 2で始めるGUI開発」は以下ITProの「Java技術最前線」連載の中にあります(^^)って多分JavaFX書いたことある人なら一度はみてるはず。

前にJavaFXで遊んでいたときはバインドを知らなくて全然触っていなかったのですが、この話を聞いたら「めっちゃ便利そう!」となりました(>_<;

スライドの12ページとか14ページとかでスライダーを例にしたデモ(デモといっても、櫻庭さんのスライドはJavaFXで作られているので、スライドの中でそのまま動いているというww)とかみると「おおー」ってなりますね。是非動画で確認を!

プロパティとバインドの話は上記連載の中にもあるので、改めて全部じっくり読まねば(>_<;

LT

最後は2本のLTでした。

@mine_neckさんによる「サーバーサイドJavaFX」のお話。

jettyのServletからJavaFXをキックして音楽鳴らすという試みの話でした。
クラウドの音楽サービスの名前メモし忘れました(^^;;

@mshdktomさんから「今さらはじめるJavaFX」のお話。

初LTとのことでしたが、落ち着いて発表されててすごいなーと。私もJavaFX初心者な中、JavaFX勉強会で発表させて頂いたのですが、緊張しっぱなしだった記憶が(^^;
(ピンマイクつけたまま席戻ってしまった苦い思い出が)

LTの中でアプリ配信の仕組みがあれば~という話をされていて、個人的に.NETのClickOnceを思い出して以下つぶやいたのですが、Web Start使えばとコメント頂きました。なるほどー。

JavaFX Advent Calendar 2014

ということで、まだJavaFXを触ったことがない方も、触ったことがあることも、JavaFX Advent Calendarに登録してJavaFXを楽しみましょう~!

JavaFXのサードパーティ「JFXtras」を触ってみる! #javafx

この記事は「JavaFX Advent Calendar 2013」の22日目の記事となります。

昨日はもじゃ変さん(@razon)による「JavaFX 8 on Scala - SHI-Zone」でした。
明日は@tikeminさんです!宜しくお願いします。

JFXtrasとは?

JavaFXでは標準で様々な画面コンポーネントが揃っていますが、企業やコミュニティのオープンソースによるサードパーティコンポーネントも色々あるようです。情報として最新状態か不明ですが、Oracleさんのページに「JavaFX Third Party Tools and Utilities」があって、画面コントロール系としては

などが挙げられていました。今回この中から、JFXtrasを少しだけ触ってみました。
http://jfxtras.org/

なぜJSXtrasに興味を持ったかというと…

  1. ShelfViewを使ってみたかった
  2. 関わっているメンバーがすごそう

の2つでした(^^;

後者は、パッと見てわかったのはStephen ChinさんとJim Weaverさんだけなのですが、今年JJUGの勉強会やJavaOneに行っていなかったら、こうした方々の名前すら気にも止めなかったと思います…(^^;

で、いざ使ってみたら経緯がわからないのですが、ShelfViewはなくなっているようで…ちょっと残念でした。

JFXtrasについては、日本でも少し前ですがブログ書かれてる方がいらっしゃって、そちらでプロジェクトの解説等が翻訳された形になっていますので、参考にして頂くほうが良いかと思います。

JFXtras 2プロジェクトとは?

サンプルを触ってみる

jfxtras-ensembleというサンプル集のようなものがあって、GitHubからダウンロードして手元でビルド・実行してみたら、こんな感じでした。

f:id:kikutaro777:20131222053205j:plain

が、自分の設定が悪いのか触るとエラーに…(^^;

あと、Java 8を入れていれば「FXTras 8.0 Samples」を見れるよ、と書いてあったので試してみました。こちらは問題なく動かせました。

f:id:kikutaro777:20131222102950j:plain

上記はタイムスケジュールとか作るようなサンプルですね。あと放射状の(Radial)メニューとか

f:id:kikutaro777:20131222103359j:plain

ちょっと触るだけでも面白いので、JDK8を入れてる方は是非触ってみてください。
以下サイト真ん中あたりの「Try It!」からjar落として、JDK8で以下実行するだけです。
http://jfxtras.org/

java -jar jfxtras-labs-samples-8.0-r1-SNAPSHOT-shadow.jar

実際に使ってみる

で、もともとネタにしようとしていたShelfViewなるものがないので、どうしよう…と思ったのですが、とりあえず動かしてみることに。

サイトみるとUse It!のところでMavenのセントラルリポジトリにjfxtras-labsがあるとのことでしたが、バージョンが古い2.2-r5までは置いてあるのですが、2.2-r6-SNAPSHOTと8.0-r1-SNAPSHOTは候補に出てきませんでした。一応セントラルの検索ページみてみたのですが、やはりなさそうな。。

f:id:kikutaro777:20131222105002j:plain

とりあえずjarは落とせるので「jfxtras-labs-8.0-8.0-r1-20130906.112928-11.jar」を適当なフォルダに落として、Mavenを使わない流れでNetBeansプロジェクトを作りました。
で、手動でjarを参照設定します。

f:id:kikutaro777:20131222105217j:plain

f:id:kikutaro777:20131222105240j:plain

FXMLファイルを開いてコード補完みると

f:id:kikutaro777:20131222105329j:plain

と出て、一瞬「あれ、コンポーネントみえないのかな…」と思いますが、右下コメントにあるように「Ctrl+Space」を押すと、JFXtras labで定義されているコンポーネントがみえるようになりました。

AgendaとかBatteryとか(^^)見慣れないコンポーネントがぞろぞろ。

f:id:kikutaro777:20131222105617j:plain

とりあえず、何かおいてみます。わかりやすそうなClockを選択。コード補完も普通に効きます。

f:id:kikutaro777:20131222111658j:plain

実行すると

f:id:kikutaro777:20131222111725j:plain

時計ですねw

他にもTrafficLightというコンポーネントがあって、属性をみたらgreenOnとかredOnとかyellowOnとか…(^^)大体想像つきますね。

さらにgreenBlinking、redBlinking、yellowBlinkingとあるので、まさかー、と思ってgreenに両方trueを指定してみました。

属性もちゃんとみえますね。
f:id:kikutaro777:20131222111634j:plain

f:id:kikutaro777:20131222111955g:plain

実行すると以下のような画面に(^^)

カスタムコンポーネントで自分でもこういう部品が作れるの?と思うと何かちょっとワクワクしますね。

残念ながら上記FXMLをSceneBuilderで開くと

f:id:kikutaro777:20131222112228j:plain

とエラーになってしまいました。クラスパス設定でうまくできるのかも?、ですが、単純にJar指定しただけではダメだったので今回はちょっと諦めます。

堀北真希さん with JFXtras

最後はやっぱり堀北さんで何か作りたい(※この理由は最後に補足)、ということで、Windowというコンポーネントを使って遊んでみました。

FXMLでWindowをAnchorPaneのchildren内に定義します。id名を付けておいて後でプログラムから触りやすいようにしておきます。

<children>
    <jfxtras.labs.scene.control.window.Window fx:id="beautifulWindow" title="きれいな堀北真希さん" prefWidth="400" prefHeight="300" />
</children>

Controllerのプログラムで

@FXML
private Window beautifulWindow;

@Override
public void initialize(URL url, ResourceBundle rb) {
    //綺麗な堀北さんの写真を指定
    Path imagePath = Paths.get("D:\\photo\\horikita\\beautiful.jpg");
    ImageView image = new ImageView(imagePath.toUri().toString());
    
    //タイトルバーの右側に閉じるボタンつける   
    beautifulWindow.getRightIcons().add(new CloseIcon(beautifulWindow));

    //Window内はBorderPaneにしてCenterへ写真配置
    BorderPane windowPane = new BorderPane();
    beautifulWindow.getContentPane().getChildren().add(windowPane);
    windowPane.setCenter(image);
}

こんな感じでWindow内に写真を置いたりします。同じようなWindowをいくつか用意して、ついでにClockコンポーネントをつけて実行すると。
美人時計ならぬ、マイ堀北さん時計…とか(^^; Windowコンポは自由に移動できるので、配置も自由に変えられます。

f:id:kikutaro777:20131222114804j:plain

Windowコンポでは閉じるボタンを左にするか右にするか(綺麗な堀北さんは右に、舞台宣伝のは左につけてます)等、細かく設定できるので便利そうです。

また、タイトルバーのボタンでRotateIconをつけると、Windowがグルっと回転したりw

f:id:kikutaro777:20131222115147j:plain

まだまだJavaFX標準機能の理解を深めないといけない自分ですが、こんな感じでちょっと脱線して面白いライブラリをみつけたりして遊ぶのもいい感じです(^^)

補足

ということで、今年の夏から始めたJavaFX、仕事で利用しているわけではなく遊びでやっているので中々上達しませんが…楽しいです(^^)
堀北真希さんを絡めた理由は少し前にJavaFX勉強会でLTさせて頂いた以下の資料を参照下さい。

JavaFX勉強会で堀北真希さんのLTをしてしまいました… #javafx_ja

今日はGlassFish勉強会とJavaFX勉強会が同日に平行開催されました。

GlassFish勉強会に登録していたのですが、後半で抜け出してJavaFX勉強会でLTをさせて頂きました(^^;

LTきっかけ

さくらばさんからJavaFX勉強会でお話しませんか、とお声かけ頂きました(>_<)

こんな光栄な機会を断るわけにいかない!ということで、技術的な内容が全くないLTでしたが、JavaFXに興味があるけど実際に触ったことがない方をターゲットに(ってJavaFX勉強会には、そんな人いないんじゃないかと思いつつ…汗)した発表をさせて頂きました。


発表資料

発表資料はアップしました。

堀北真希さんのことばかりで本当に恐縮です…

デモ動画

上記資料にもリンクで貼ってますが、ここでも載せておきます。
アプリケーションを作成したときのブログも入れときますが、作った時点からは色々といじって非同期にしたりとかしてますが、その辺りはどこかで機会あればまとめます(^^;

MakiMakiImageViewer

上記動画の後半はStageStyleでTRANSPARENTを指定したもので、アプリ上段の枠が消えただけなのですが、なんかビューアっぽい感じになってるかと(^^)これも作った後、さくらばさんからアドバイスもらったものです。

作ったときのブログ
堀北真希さん誕生日を祝ってJavaFXで画像ビューアを作ってみる
StageStyleを指定してみる

ここから始めるJavaFX

自分はJJUGで今年の8月に行われたJavaFXハンズオンの資料を参考にして、初めてJavaFXを触りました。

このハンズオンで、SceneBuilderやプログラム作成の基本的な流れはわかるので、あとは自分で作りたいものを作ればいいのかなと。

JavaFXハンズオンにお家でChallenge!

感想

堀北真希エバンジェリストになりたい…(*´Д`)

にほんブログ村 IT技術ブログへ
にほんブログ村
にほんブログ村 IT技術ブログ Javaへ
にほんブログ村
QLOOKアクセス解析