スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

JavaFXによる既存アプリケーションGUIのリファイン(志半ば・・)

今回の投稿は、JavaFX Advent Calendar 2012 の12/17の回のエントリーになる。

最近は業務と、大学院のPBL活動で忙しすぎて、結局あまりブログも書けずじまい・・・
それではあんまりなので、このシーズンはやはり Advent Calender が流行っているので、PBL活動で触れている JavaFX で何か書けたらなぁ、と執筆を希望した。

JavaFXはデスクトップアプリケーション向けのGUIライブラリだが、そもそも私はデスクトップアプリの開発経験が長い方である。
VC++でWindowsネイティブなデスクトップアプリを開発したことに始まり、Javaでも普通はJSP + Servletの開発から入るのが定石のところ、Eclipseのプラグイン開発(SWT!)から入るという、ある意味亜流を通ってきたのである。
Swingすらあまり触らず、ちょっとしたデスクトップアプリを開発するときは、Eclipseで慣れたSWTを使っていた。

SWTはともかく、Swingがメンテナンスモードになってしまうとは、デスクトップJava派の私としては気になるところ。
そうした関心を持っていたタイミングで、PBL活動でJavaFXに触れる事になった。
デスクトップトップアプリケーション向けのフレームワークの開発をやっているが、修了間際にはドキュメント等を揃えて公開する予定。

なので本エントリーの題材としては他のものを扱う。
業務とは少し異なるが、社内でイベントや説明会などを開催する際に、フェリカ内蔵の社員証を利用して簡単に出欠を取りたいとの要望から「参加確認アプリケーション」を個人的に開発した。
まあ、仕事中に全くコーディングしていないかというとそうではないが、大半は帰路でのカフェか、自宅で開発。

システム構成としては、PC1台で当該アプリケーションを動作させ、そのPCにUSB接続でFelicaのカードリーダーを接続し、リーダーに社員証をかざすことで社員証の情報を記録する、といった処理をする。
当初、これはC言語でCUI版として開発し、コマンドプロンプトで動作させていた(ソースコードはこちら)。

急ぎで開発したので仕方なかったものの、その後、CUIではあんまりということでJavaに移植し、SwingのGUIをつけることで見た目の改善を図った。
カードリーダーのドライバはDLLのため、WIndowsネイティブで動作しているので、Javaからの呼び出しはJNAを使用。
そうしてJava版を開発(ソースコードはこちら)。

実際の利用場面はこんな感じ。
PCplusReader.jpg


画面のイメージはこんな感じ。
FelicaNumberJ.jpg

これはなかなかのヒット作アプリで、社内で定期的に開いている技術コミュニティイベントやハンズオンセミナーの開催時に、参加確認の記録を取るのに大いに活躍している。
他の人から使わせて欲しいとの依頼を受けたイベントでは、100名以上の参加者の参加確認に使われたりもした。

そんな形で運用しているものの、やはりSwingのGUIがちょっとイケてないとの指摘もあり、せっかく今現在、JavaFXに触れているので、それを使ってちょっとは見た目の良い画面にするか!ということで、画面表示の機能だけの改修を検討していた。

JavaFXはCSSを利用して色々と装飾ができるので、リッチなGUIを作ることができる。
しかもこのように、通常、デスクトップで動作するアプリケーションにて利用する。
まさにこのアプリケーションで使うべき、次世代GUIライブラリ!

・・・ということで、やろうやろうと計画はしていたものの、上記のようになかなか時間がとれず・・・
このエントリーの執筆を機に、ちょっと手がけてみた。

で、開発した画面がこちら(アドレスのぼかしはJavaFXとは関係なし・・)。
ずいぶん見栄え良くカッコよくなった!
FelicaNumberJavaFX_.jpg

で、ソースコードはこちら・・・と言いたいところだが、残念ながらまだGUI機能のみを開発しただけで、肝心のカードリーダー機能とのつなぎができておらず・・・
近いうちに改修を完了して、社内イベントでの参加者の反応でも見てみたい。

このように、既存のデスクトップアプリケーションのさえないGUIをリファインするには、まさにJavaFXは救世主となりえるのでは。
Swingは使われて長いので、その既存資産をこうして現代のGUIで復活させることには意味があると思う。
 
FC2 Management

トラックバック

http://rewtheblow.blog.fc2.com/tb.php/24-680e0f84

コメントの投稿

管理者にだけ表示を許可する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。