野狐消暇録

所感を記す

JavaFXを使ってみたのだった。

会社で、技術勉強会を催す事になった。何と責任者は僕である。
...
やりましょう。

最初、AOJとか、そういうプログラミング・コンテストを通した勉強をイメージしていたのだが、参加者の提案で、月ごとの持ち回りの、発表形式になった。1月に一度、誰かが勉強した事をみんなの前で発表する。
僕は技術関連の発表をした経験がなく、どういう事をすればいいのか、はっきりとしたイメージはなかったが、ともかく勉強会を始める事が先決だと思った。最初の発表者は自分にした。また、発表時期は月末にした。そうすると、発表まで、時間がない。2週間ちょっとしかない。
考えた末、JavaFXをやってみる事にした。

JavaFX テクノロジーの概要

Oracleの技術である。ここで出てくるJavaはそう、あのプログラミング言語Java」である。JavaFXとは、一言で言うと、Javaで作るUIである。
まずは下記のサイトで勉強だ。

初心者のためのJavaFXプログラミング入門

チュートリアルって感じのサイトである。JavaFXはSwingに変わって新しく登場した、JavaのUI作成技術なのだ。
このサイトで学んでて感心したのが、JavaFXXMLでUIを作るという事。そういう点では、Androidに近いのかしら。でも、Androidで使っているJavaは公式じゃない?んだってね。GoogleOracleが争っているってどこかで読んだよ。このXMLはFXMLと名付けられていて、名前の由来はJava"FX"と"XML"を掛けているんだと思うな。

ここでちょっとFXMLの例を挙げたいのだが、会社の勉強会向けに作った物をここで挙げていいのか、分からないので止めよう。

あと、JavaFX向けのCSSというのもある。これはWebサイトを書くときにHTMLと一緒に使うあのCSSとはやや違うらしいのだが、目的は一緒だ。

これも例を挙げたいんだけど、会社向けのやつだから止そう。というか、上記に挙げたチュートリアルサイトに全部載っているから、そっちでいいよ。

なんか情報量ゼロになってきた。これだけ書いたのに、情報量ゼロ。なるほど、これがゴミブログだな!

あとですね、FXML内で、スクリプト言語が使えるのだよ。JavaScriptClojureやGroovyとか。使えるはずだよ、エラーになっちゃって自分は使えなかったけど。

なぜコンパイルエラーごときで諦めたかと言えば、あまり僕の作ったサンプルで、スクリプト言語を使う必然性がなかったからなんだよ。

だって、Javaで書けるんだよ。JavaFXは入力ボックスとか、プルダウンメニュー、ラジオボタン、日付選択用のピッカー、ボタンなど、色々なコントロールを配置できる。それを押したり、選んだりしたとき、ちゃんとそのアクションをJavaで受けて、イベント駆動できるのだ。とすると、ちょっとスクリプトの使いどころが分からなかった。スタンドアローンでアプリを書いて、そのUIをJavaFXで作ったとしたら、要らないと思う。多分、リッチクライアントという事なので、別の使い方があるのではないかと思っている。Webサイトで、このXML+CSS+軽量言語を閲覧できるようになる? ちょっと分かってない。Adobe Flashみたいな使い方ができるそうなんだけど。

僕がJavaFXを使ってみて思ったのは、企業で自社向けツールを書いた時、開発した本人以外の人が実行する時に使うUIをJavaFXで書くのが良いのではないかという事。Javaツールを作ったら、UIもJavaで作れると一貫して開発できていい。ちょっとしたUIなら、まず問題ないだけのコントロールやCSS機能が入っていそうだ。

そういう点で、MicrosoftVisual Studioで作るフォームアプリケーションのフォーム部分みたいなのが、Javaでもできる、という事なんじゃないかね?

あと、書き忘れていたが、JavaFX Scene Builderという、GUIベースでFXMLが記述できるツールOracleが配布している。

JavaFX Scene Builder Information

上記サイトのサブタイトルに「A Visual Layout Tool for JavaFX Applications」とあるが、まさにその通りだ。以下の画像は起動した所。

f:id:nogitsune413:20150505035523j:plain

こんな技術があるんだな。Javaの世界は広い。