Kenji Tachibana's Weblog

メイン | 次のページ »

http://blogs.sun.com/kenji/date/20090402 2009年 4月 02日 木曜日

翻訳: Konichiwa JavaFX

JavaFX blog で日本のことが少し取り上げられていたので、久しぶりに翻訳してみました。
Japan JavaFX ユーザーグループ
ができたことで、にわかに日本に関する関心が増えてきましたね。うれしい限りです。
----------------
Following are some Japanese JavaFX blogs from our localization and internationalization engineers
-------
国際化/ローカリゼーション チームのエンジニアの (日本語の) blog です。

Kenji Tachibana | Masaki Katakai | Naoto Sato | Yuka Kamiya

Also introducing a new JavaFX Japanese community portal, initiated by the community. This is where JavaFX users can freely communicate and exchange ideas and information in Japanese.
-------------
また、JavaFX の日本語コミュニティーポータル、http://javafx.jp がコミュニティーによって設立されました。このポータルでは、JavaFX ユーザーが自由にコミュニケーションをとったり、アイディアや情報の交換を日本語で行えるサイトです。

http://blogs.sun.com/kenji/date/20090401 2009年 4月 01日 水曜日

JavaFX: Display localized Screen on runtime

This is English version of this blog



JavaFX.COM has many interesting samples for JavaFX. I was asked JavaFX sample team, to create a sample for changing the display language on runtime. So, I've created it and up it on my blog, first.

Sample for Runtime localization (Web Start, use signed jar)

If you see the source code, you can find that this example is using the Locale.setDefault Java class method, like change the default locale and reload the localized strings from .fxproperties.

The clock in botton of the screen is created with refering to Building a JavaFX Application Using NetBeans IDE .
However, to display the time, use extended formatter to display localized time format.


LocalizedDate = "{%tEc now}";

"now" is the Date Object from Java class, and put the localized time strings to LocalizedDate (String).
This time is displayed in each timezone's time. So, please compare the English (Los Angeles) and Japanese (Tokyo).

Also, this sample has the round image animation (?), which is I've wanted to create from before. When you click the language button, world map will move to center the city where represent specified language and Timezone.
- English : Los Angeles
- Japanese: Tokyo
- Simplified Chinese: Shanghai (Because timezone need to specify Shanghai (not Beijing) in Java)
- Korean: Seoul
- Brazilian Portuguese: Sao Paulo

This is simply implemented with 3 lined world map, and display only center one and move 3 maps together to left or right.

Source Code






Displayed in English. Then, click Japanese (日本語) button,

Chnage to Japanese.

JavaFX ランタイムローカリゼーションのサンプル

JavaFX.COM のページにサンプルがたくさんありますが、JavaFX で動的に表示言語がかわるサンプルを作らないか?というお誘いに乗って、作ってみました。もちろん NetBeans で!

動的に表示言語がかわるサンプル (Web Start, 署名付き jar 使用)

サンプルに載せてもらえるかどうかはわからないので、とりあえず blog に載せました。

ソースコードを見るとわかるのですが、切り替えは Java の Locale.setDefault メソッドを使っています。ロケールを切り替えて、もう一度メッセージを .fxproperties から読み直してる、という感じです。

画面したの時計は、 Building a JavaFX Application Using NetBeans IDE を見ながら、ローカライズだけしてみたのですが、さくらばさんが、 ついにベールを脱いだJavaFX - 国際化 で、すでに作成されていましたね... 私のソースより、こちらを見たほうがずっと参考になると思います。

また、このサンプルは、ローカリゼーション関連だけではなく、
前からやってみたかった、「ぐるっと一周している画像のアニメーション」も作ってみています。各言語ボタンをクリックすると、世界地図が動いて、その言語にあった都市を中心にした世界地図になります。単に世界地図を3枚横に並べて、中心の画像だけ左右に動かしているのですが、作ってみるとなかなか面白かったです。

ソースコード






英語の画面。ここで、「日本語」をクリックすると、

日本語に切り替わります。

http://blogs.sun.com/kenji/date/20090331 2009年 3月 31日 火曜日

JavaFX.com: Brazilian Portuguese and Chinese Page newly added

Brazilian Portuguese is newly added on JavaFX.com, and
Simplified Chinese page is update to latest JavaFX 1.1.1 !!

Please access:

Brazilian Portuguese
Simplified Chinese

Or can go there from Language selector, in footer.

New Language Selector screen shot.

http://blogs.sun.com/kenji/date/20090326 2009年 3月 26日 木曜日

JavaFX 1.1.1 がリリースされました。

JavaFX 1.1.1 がリリースされました。
1.1 からのマイクロリリースなので、バグフィックスがメインです。

JavaFX SDK では、メディア関連の bug fix がメインですが、一番うれしいのは、NetBeans 6.5.1 用の plug-in が出たのと、日本語 (というか、英語以外) の文字を使った時に生じる NetBeans エディタ上の問題が修正されたことでしょうか。

JavaFX 1.1.1 リリースノート

NetBeans IDE 6.5.1 for JavaFX 1.1.1 リリースノート

修正されたエディタの問題

片貝さん、ありがとうございます!これで、やっと日本語使えますね。

NetBeans で、JavaFX plug-in を既にお使いの方は、アップデートセンターから、ダウンロードできると思います。

または、 JavaFX ダウンロードページ からも取得できます。

日本語のダウンロードページ はまだ、1.1 なんですが、近日中にアップデートされる予定です。

日本語のダウンロードページ (予定)

---- 追記 ----

教えてくださったのですが、NetBeans の JavaFX editor には、
まだ、整形 (format) の部分で問題が残ってしまっているそうです。

整形の問題

ただ、以前のように、日本語を入力するだけで、エラーサインがでるような問題は、無くなったようです。それだけでも良かったかなと。
---------------

http://blogs.sun.com/kenji/date/20090319 2009年 3月 19日 木曜日

Software Design 4月が発売されました。

Software Design 4月が発売されました。
「NetBeans ではじめる JavaFX 入門」も無事に(?) 載せていただけました。

是非、読んでみてください。

http://blogs.sun.com/kenji/date/20090311 2009年 3月 11日 水曜日

JavaFX で Yahoo! map を - JavaFX から javascript を起動する -

数日前、営業部の方 (といっても、エンジニアの方ですが) から、「JavaFX から JavaScript を使いたいのですが?」というご質問をいただきました。
実は、以前から JavaFX から、google や yahoo の地図を起動できないかなぁ、と思っていました。これらの API は、javascript もしくは web サービスで提供されていて、JavaFX から、javascript を起動する方法を考えたのですが、あまりいい方法が見つからず挫折していたので、一瞬、「できないと思います」と答えようとしてしまいました。ところが、その後の説明を聞くと「Java から JavaScript を起動する方法は見つけたのですが、JavaFX から使えないでしょうか?」ということだったのです。
JavaFX では、ご存じの通り、Java のオブジェクトはほとんどそのまま利用できます。なので、「それならできるかも」と思い、サンプルコードを見せていただきました。

... 結局のところ、私は何の役にもたたず、その方が自己解決してくださり、JavaFX から JavaScript を起動する方法を教えていただきました。(ありがとうございます!)

その方法をもとに、以前挫折した、Yahoo Map を JavaFX から起動する方法について、書いておこうと思います(IDE は NetBeans を使っています)。



概略


サンプルで作成するのは、JavaFX で作ったテキストフィールドに、緯度と経度を入力し、ボタンを
押すとその地図を表示する、というものです。緯度と経度の取得方法は、 Yahoo!ディベロッパーズネットワーク を参考にしてください。
できあがりは、以下のようになります。

上の図では、サンマイクロシステムズ本社のある SBS タワーの緯度と経度 (35.62355719, 139.63583278) を入力して、表示した地図です。

JavaFX から JavaScript の関数を呼び出すには、JSObject を利用します。 Java から JavaScript への通信 に JSObject に関する記述がありますが、java1.4 時代のもので、内容的にはちょっと古そうです。なので、ほとんどの情報は、WWW を探して見つけてきたものです。

JSObject は、JRE の plugin.jar にあります。使い方を簡単に説明すると、getWindow メソッドで、
JSObject クラスのインスタンスを取得し、call メソッドで、HTML 上で定義されている javascript の関数を呼び出すことができます。


windonw = JSObject.getWindow(アプレット);
window.call("関数名", 引数);



その1: plugin.jar の追加


plugin.jar は、JRE の lib にあります。NetBeans で、JavaFX プロジェクトを作成し、 「Libraries」 を左クリックして、「Add JAR/Folder」を選択します。
NetBeans で JavaFX を使う方法は、 JavaFX プラグインを使ってみよう! を参照してください。

私の環境の場合、plugin.jar は以下のディレクトリにありました。

C:\Program Files\Java\jdk1.6.0_11\jre\lib\plugin.jar



その2: JavaScript を呼び出す JavaFX スクリプトの作成


次は、JavaScript を呼び出す JavaFX スクリプトの作成です。概要でふれましたが、JavaScript を起動するには、JSObject クラスを利用します。JSObject クラスの getWindow は、Applet クラスのオブジェクトを引数として取るので、まず、JavaFX が動作している Applet オブジェクトを取得する必要があります。Applet オブジェクトは、JavaFX に含まれる javafx.lang.FX クラスの getArgument メソッドを使って以下のように取得します。詳しくは、 JavaFX API doc を参照してください。

var applet: Applet = javafx.lang.FX.getArgument("javafx.applet") as Applet;

次に、getWindow メソッドを使って JSObject クラスのオブジェクトを取得します。その1で plugin.jar を追加してあれば、以下のように JSObject を取得できます。

var window = netscape.javascript.JSObject.getWindow(applet);

最後に、JSObject クラスの call メソッドを使って JavaScript の関数の呼び出しを行います。

window.call("関数名", 引数);

もし、JavaScript 関数から戻り値がある場合は、JavaFX 側の変数に代入することも可能です。
以下は、JavaScript から文字列を戻り値としてとる場合です。

var testval = window.call("関数名", 引数) as String;

JavaFX 側の説明はいったんここまでにします。というのは、呼び出される側の JavaScript がないと、呼び出せないので!



その3: JavaScript 側


次に Yahoo! Map を呼び出す JavaScript (HTML 内に記述) を作成します。Yahoo! Map の使い方は、
http://developer.yahoo.co.jp/webapi/map/maps/v2/js/ を参照してください。非常に簡潔に書いてあるので、読むだけで、一番簡単な地図は表示できるようになると思います。

次に、JavaFX から起動できるように、window.onload() 時ではなく、関数として指定して、任意の時点で地図を表示するように変更します。これらを head タグの間に定義しておきます。


<head>
<script type="text/javascript" src="http://map.yahooapis.jp/MapsService/js/V2/?appid=マップキー"></script>
<script langauge="javascript">
function Start() {
ymap = new YahooMapsCtrl("map");
}
</script>
</head>

マップキーは取得したマップキーを入力してください。

この Start() 関数を JavaFX 側から呼び出すことになります。
ここでは緯度、経度の引数はまだ考えていないので、この関数が実行されると、
Yahoo Japan の本社 (六本木ヒルズ) に飛ぶはずです。

次に body には、Yahoo! Map を表示する領域と、JavaFX スクリプトから生成されるアプレットを配置します。以下は Yahoo! Map を表示する領域です。


<div id="map" style="width:600px; height:300px"></div>

そして、アプレットは以下の通りです。JavaFX スクリプトをアプレットとして配備する方法の詳細は、櫻庭さんの「ついにベールを脱いだJavaFX:第13回 デプロイメントとアプレット を参照してください。


<script src="http://dl.javafx.com/1.1/dtfx.js"></script>
<script>
javafx(
{
archive: "JavaFXApplication5.jar",
draggable: true,
width: 200,
height: 200,
code: "javafxapplication5.Main",
name: "JavaFXApplication5"
}
);
</script>

この部分は、NetBeans が生成してくれる html (プロジェクトの dist ディレクトリに生成されます) をコピーしたものです。draggable は false でいいかもしれませんね。

この作成した HTML (ページの下部に最終的な HTML のリンクがあります) を dist に NetBeans で生成される HTML とは別の名前で保存しておきます。右クリックから、「表示」選ぶと、ブラウザから表示することができます。



その4: 再び JavaFX 側


呼び出す JavaScript ができあがったので、JavaFX 側に戻ります。
残りは簡単で、テキストフィールドと、ボタンを作成して、ボタンをクリックしたら、JSObject の call メソッドを使って JavaScript の Start() 関数を呼び出します。

var nsew = "latitude, longitude";
(略)
SwingTextField {
columns: 20
text: bind nsew with inverse
editable: true
},
SwingButton {
text: "Yahoo Map"
onMouseClicked: function( e: MouseEvent ):Void {
var args: String[] = [nsew];
window.call("Start", args);
}
}

テキストフィールドに入力された文字列 (緯度と経度)は、nsew 変数にバインドされています。
ボタンを押したときに、この nsew を配列として JavaScript 側に渡します。

JavaFX の完全なソースは、 ここ にあります。



その5: 引数(再び JavaScript)

これで完成かと思ったのですが、window.call("Start", args); で渡した引数 args がなかなかハンドルできませんでした。いろいろ探し回ったあげく、ここに回答が書いてありました。

http://chaichan.web.infoseek.co.jp/qa6000/qa6015.htm
argument[] に渡されているんですね。
なので、JavaScript の Start() 関数を下記のように変更しました。


function Start() {
ymap = new YahooMapsCtrl("map", String(arguments[0]));
}

これで完成です!

作成した HTML を ここ においておきました。ただしリンクをクリックすると html として表示してしまうので、ファイルにセーブしてから参照してください。

最後に一点だけ誤解の無いように付け足しておきます。この方法では、あくまで JavaScript の関数を呼び出しているだけなので、Yahoo! Map 自体を JavaFX 側で操作することはできません。つまり、表示させたマップを回転させたり、拡大させたりはできないです。これは Yahoo Japan に対応していただくしか方法はないですかね...

http://blogs.sun.com/kenji/date/20090310 2009年 3月 10日 火曜日

SDC ポータルが、JavaFX 1.1 用にアップデートされました。

SDC ポータルの JavaFX が 1.1 用にアップデートされました。

一番大きな変更は、言語/UI のチュートリアルがアップデートされたことです。JavaFX モバイルエミュレータの使い方や、サンプルの追加など、グッと良くなったと思います。

SDC ポータル、JavaFX のトップページ

JavaFX Script プログラミング言語について

JavaFX を使用した GUI アプリケーションの構築

是非、ご一読ください。

http://blogs.sun.com/kenji/date/20090303 2009年 3月 03日 火曜日

JavaFX: JavaFX.com に日本語ページが!

JavaFX.com に、とうとう、各国語のページがアップされました!!

と、いっても、今は、日本語と中国語だけです。すぐに韓国語もアップされると思います。

日本語のページへの行き方は、JavaFX.com のページの一番下に、English[Change] というリンクがあります。これをクリックすると、日本語選択のダイアログが表示されます。

まだ、翻訳されているページは少ないですが、これを第一歩に日本語のページを増やしていきたいと思います。

http://blogs.sun.com/kenji/date/20090302 2009年 3月 02日 月曜日

JavaFX: Software Design に記事を書きました - NetBeans ではじめる JavaFX スクリプト入門

久しぶりの update ですが、技術評論社さまの Software Design 4月号に、「NetBeans ではじめる JavaFX スクリプト入門」という記事を書かせていただきました。

そのページで紹介したサンプルのソースコード等を載せた「補足サイト」をアップしました。

http://blogs.sun.com/kenji/page/reference

発売までにはもう少し変更して、いいページにしようかと思っていますが、宣伝も兼ねて先にアップだけしてしまいました。

http://blogs.sun.com/kenji/date/20090216 2009年 2月 16日 月曜日

JavaFX ランタイム 一億ダウンロード突破!!

言わずとしれた Sun の総大将 Jonathan Schwartz's Blog からの情報です。

JavaFX のランタイムのダウンロードが 100,000,000 を突破したそうです。

い、一億??

間違いかと思い、何度も数字を確認してしまいました。リリースしたのが、昨年の12月ですから、聞いたことがないスピードです。百万じゃないのかなぁ... それでもすごいですけど。
でも、文中に何度もでてきているので、おそらく間違いないでしょう。

# さくらばさんより、コメントを頂きましたので、そちらも参考にしてください。

http://blogs.sun.com/kenji/date/20090212 2009年 2月 12日 木曜日

JavaFX 1.1 リリース

JavaFX 1.1 がリリースされました!

前回のマイクロリリース (1.0.1) とは違い、NetBeans 用の Plug-in や、 Production Suite も同時に、リリースされています。

JavaFX 1.1 の目玉はなんといっても、JavaFX Mobile の公式サポートです。 Mobile World Congress に合わせてリリースされました。

NetBeans のプロジェクトのプロパティから、"Run in Mobile Emulator" を選択すると、

エミュレータから起動できます。
下の例は、以前作ったスマイルのサンプルを、JavaFX Mobile エミュレータで起動した画面です。

その他では、
- 言語仕様の改善。すべての Java numeric 型 (float, double, long, int, short, byte)がサポートされるようになりました。
- パフォーマンスの改善や、バグフィックス

となっています。

JavaFX 1.1 の新機能の詳細等は、 リリースノート を参照してください。

JavaFX プラグインを NetBeans で既にお使いの方は、プラグインを更新してください。新規に JavaFX 1.1 をお使いの方は、 http://javafx.com/downloads/all.jsp からダウンロード可能です。Production Suite もここからダウンロードできます。

「ここが知りたい NetBeans 6.5」が発表されました。

SDC に記事を書きました でも紹介しましたが、SDC に JavaFX について書いた記事がアップされました。

ここが知りたい NetBeans 6.5 第1回:JavaFX プラグインを使ってみよう! です。是非、読んでみてください。

http://blogs.sun.com/kenji/date/20090210 2009年 2月 10日 火曜日

InfoWorld が JavaFX に高い評価を!

InfoWorld に、JavaFX が高く評価された記事が掲載されました。

こちらから、記事全文にアクセスできます。
http://www.infoworld.com/article/09/02/09/06TC-javafx_1.html

http://blogs.sun.com/kenji/date/20090209 2009年 2月 09日 月曜日

翻訳: OpenSolaris で JavaFX を

The Observatory からの翻訳です。OpenSolaris や Linux 用の NetBeans で使える JavaFX プラグインはなかなか正式リリースとなりませんが、このページで使う方法を紹介してくれています。

JavaFX isn't available for Linux and OpenSolaris yet. As to why, I suggest you read Josh Marinacci's blog: A Word on Linux and Solaris Support.
----------
JavaFX は、Linux や OpenSolaris ではまだ使うことができません。その理由については、Josh Marinacci's のブログ A Word on Linux and Solaris Support. を読んでください。

However, this hasn't stopped the community from documenting how to install JavaFX on Linux. And not surprisingly, those instructions work very well for OpenSolaris.
-----------
しかし、コミュニティでは、JavaFX を Linux にインストールする方法が書き続けられてきました。驚くことに、これらをちょっと変更するだけで、OpenSolais にインストール出来てしまうのです。

With some minor adjustments, here are the exact steps I to took to get the JavaFX SDK running in NetBeans on OpenSolaris.
------------
以下は、私が JavaFX SDK を OpenSolaris の NetNeans 上で使うために行った方法です。

Step 1. Install NetBeans
------------
ステップ1: NetNeans のインストール

The NetBeans IDE makes working with the JavaFX SDK much more enjoyable. You'll need NetBeans 6.5, if you don't already have it installed:
-------------
NetBeans IDE は、JavaFX SDK をもっと楽しいものにしてくれます。もしNetBeans をインストールしていないのなら、NetBeans は、6.5 を install しましょう。


bleonard@opensolaris:~$ pfexec pkg install netbeans
PHASE ITEMS
Indexing Packages 554/554
DOWNLOAD PKGS FILES XFER (MB)
Completed 22/22 5931/5931 204.40/204.40
PHASE ACTIONS
Install Phase 7387/7387
Reading Existing Index 9/9
Indexing Packages 22/22

Step 2. Downoad the NetBeans JavaFX Plugins
--------------
NetBeans JavaFX プラグインのダウンロード

The JavaFX Plugins can be found here: http://updates.netbeans.org/netbeans/updates/6.5/uc/final/stable/modules/javafx/. We'll use wget to download them:
---------------
JavaFX プラグインは、 http://updates.netbeans.org/netbeans/updates/6.5/uc/final/stable/modules/javafx にあります。wget を使ってダウンロードしました。

bleonard@opensolaris:~$ mkdir javafxnbms bleonard@opensolaris:~$ cd javafxnbms
bleonard@opensolaris:~/javafxnbms$ wget -r -l1 -np -nH --cut-dirs=9 -A.nbm http://updates.netbeans.org/netbeans/updates/6.5/uc/final/stable/modules/javafx
--12:02:12-- http://updates.netbeans.org/netbeans/updates/6.5/uc/final/stable/modules/javafx
=> `javafx'
Resolving updates.netbeans.org... 72.5.124.114
...
FINISHED --12:05:10--
Downloaded: 68,475,450 bytes in 25 files

Step 3: Install the JavaFX Plugins
----------------
ステップ 3: JavaFX プラグインのインストール

1. Start NetBeans and select Plugins from the Tools menu.
2. Select the Downloaded tab and click the Add Plugins... button
3. Browse to the javafxnbms directory, select all of the plugins and click OK.
4. Uncheck the JavaFX Weather Sample, JavaFX 1.0 and JavaFX Source Debug plugins. These plugins are leftovers from the Preview SDK and will fail to install. Your Plugins dialog should look as follows (click to zoom):
-----------------
1. NetBeans を起動し、「ツール」メニューから「プラグイン」を選択します。
2. 「ダウンロード」タブを選択し、「プラグインの追加」ボタンをクリックします。
3. javafxnbms ディレクトリをブラウズし、すべてのプラグインを選択して「OK」をクリックします。
4. JavaFX Weather Sample、JavaFX 1.0 および JavaFX Source Debug plugins のチェックを外します。これらのプラグインは、Preview SDK からの物で、インストールに失敗します。プラグインダイアログは以下のようになっているはずです。

5. Install the 18 selected plugins. When the plugin installation finishes, NetBeans will automatically restart. Don't worry about any exceptions you may see, because we haven't installed the SDK yet.
6. Quit NetBeans.
------------------
5. 選択された 18 個のプラグインをインストールします。プラグインのインストールが終了すると、NetBeans は自動的に再起動されます。例外が発生しても気にしないでください。まだ、SDK をインストールしていないのですから。
6. NetBeans を終了します。

Step 4: Install the JavaFX SDK
-------------------
JavaFX SDK をインストール

1. NetBeans plugin files (nbms) are standard zip archive files. One of the plugins downloaded was the SDK for OS X. Assuming you're still in the javafxnbms directory:
-------------------
NetBeans プラグインファイルは、zip アーカイブファイルです。ダウンロードされたプラグインうちの一つに、OS X 用の SDK があります。javafxnbms に移動して以下のアーカイブを解凍してください。

bleonard@opensolaris:~/javafxnbms$ unzip org-netbeans-modules-javafx-sdk-mac.nbm ...
inflating: main/main.properties inflating: main/org/netbeans/javafx/install/Install.class

2. Create a directory under NetBeans for the JDK.
--------------------
2. NetBeans 以下に SDK 用のディレクトリを作成


pfexec mkdir /usr/netbeans/javafx2

3. Copy the contents of the extracted plugin to NetBeans:
---------------------
3. 展開されたプラグインを作成したディレクトリにコピー


pfexec cp -r netbeans/* /usr/netbeans/javafx2/

4. Make the SDK's binaries executable:
----------------------
4. SDK バイナリに実行可能にする:


pfexec chmod +x /usr/netbeans/javafx2/javafx-sdk1.0/bin/*

Step 5: Learn/Play
-----------------------
ステップ 5: 試してみる

Start NetBeans. There are a bunch of JavaFX Sample projects. To create one, select File > New Project and then Samples > JavaFX under the categories. For example, here's the DisplayShelf (click to zoom):
-----------------------
NetBeans を起動します。「ファイル」-> 「新規プロジェクト」 -> 「サンプル」-> JavaFX から���サンプルを起動してみましょう。以下は、DisplayShelf の例です

To get started with learning JavaFX, check out the tutorials.
------------------------
JavaFX のはじめて使うのなら、チュートリアル から始めるのがいいでしょう。


Valid HTML! Valid CSS!

This is a personal weblog, I do not speak for my employer.