SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

JavaFX MobileでデバイスUI開発をもっと効率的に

JavaFX Mobile開発の基本

JavaFXの構文とJavaとの相乗効果

 JavaFXは、JavaFX ScriptとJavaFX Mobileで構成されるプロダクトフレームワークです。JavaFX Script(JavaFXと略されます)は、機能や操作性に優れたユーザーインターフェースを提供するためのスクリプト言語です。そしてJavaFX Mobileは、その名のとおり、モバイルプラットフォーム向けのJavaFXです。

 JavaFX Scriptでは、JavaScriptやScalar Vector Graphics(SVG)に似た宣言的構文が採用されています。例として、図1、図2、図3に示すようなちょっとした「Hello World」風のウィンドウを作成するJavaFXコード(インポート部分を除く)を示します。

Stage {
 title: "Cool Running"
 width: 250
 height: 80
 scene: Scene {
 content: Text {
 font: Font {
 size: 20
 }
 x: 10,
 y: 30
 fill: Color.GREEN
 content: "JavaFX is cool"
 }
 }
}

 ご覧のように、JavaFXはJavaやJavaScriptに似たところもありますが、どちらとも違っています。

図1 デスクトップ上で動作するJavaFXの簡易UIウィンドウ。上記のJavaFXによる簡単なUIウィンドウをデスクトップで実行した場合
図1 デスクトップ上で動作するJavaFXの簡易UIウィンドウ。上記のJavaFXによる簡単なUIウィンドウをデスクトップで実行した場合
図2 ブラウザ内で動作するJavaFXの簡易UIウィンドウ。上記のJavaFXによる簡単なUIウィンドウをブラウザ内で実行した場合
図2 ブラウザ内で動作するJavaFXの簡易UIウィンドウ。上記のJavaFXによる簡単なUIウィンドウをブラウザ内で実行した場合
図3 携帯電話エミュレータ内で動作するJavaFXの簡易UIウィンドウ。上記のJavaFXによる簡単なUIウィンドウを携帯電話エミュレータ内で実行した場合
図3 携帯電話エミュレータ内で動作するJavaFXの簡易UIウィンドウ。上記のJavaFXによる簡単なUIウィンドウを携帯電話エミュレータ内で実行した場合

 JavaFXの宣言的スタイルは、命令型プログラミングの形をとるJava Swingとの比較によってさらに明確になります。次のSwingコードは、先ほどの例と同じ「Hello World」風ウィンドウを作成するものです(ここでもインポート部分は割愛)。

public class Main {

 public static void main(String[] args) {
 JFrame aFrame = new JFrame("Cool Running");
 aFrame.setSize(250, 80);
 JPanel content = new JPanel();
 content.setLayout(new BorderLayout(5, 5));
 content.setBackground(Color.WHITE);
 JLabel aLabel = new JLabel("Swing is cool");
 aLabel.setFont(new Font(null, Font.PLAIN, 20));
 aLabel.setForeground(Color.GREEN);
 content.add(aLabel, BorderLayout.CENTER);
 aFrame.setContentPane(content);
 aFrame.setVisible(true);
 aFrame. 
 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
}

 命令型の実行形式をとるSwingの特徴(つまり、ステートメント単位の制御フロー)がよく分かります。これは、従来のJava UIの開発で使われてきたやり方です。図4に、このJava Swingコードの実行結果を示します。

図4 SwingとJavaFXの比較。先ほどのコードと同じ「Hello World」風ウィンドウをSwingコードで作成したもの
図4 SwingとJavaFXの比較。先ほどのコードと同じ「Hello World」風ウィンドウをSwingコードで作成したもの

 既に述べたようにJavaFXはJavaでもJavaScriptでもありませんが、Javaクラスの呼び出しやJavaクラスからの呼び出しが可能です。例えば、ウィンドウのサイズを求める次のJavaFXスクリプトでは、Stageオブジェクトのサイズを書き換えるのに標準のJava Mathクラスを使用しています。

var i = 250;
var j = 300;
Stage {
 title: "Cool Running"
 width: java.lang.Math.max(i, j)
 height: 80
 scene: Scene {
 ...

 Sunは、Adobe Flexのような他のテクノロジにはない利点の1つとして、JavaFXが既存のJavaコードを利用できる点を大いに宣伝しています。また、JavaFX Scriptはどんなアプリケーションも構築可能なプラットフォームですが、SunはそのねらいをUI開発に定めており、ビジネスコンポーネントやバックエンドコンポーネントは開発の対象としていません。

次のページ
JavaFX Mobileのアーキテクチャ

この記事は参考になりましたか?

japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Jim White(Jim White)

Intertech Trainingのインストラクタ。『Java 2 Micro Edition』(Manning刊)の共著者でもある。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3921 2009/06/05 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー