Wednesday Oct 07, 2009

少し前になりますが札幌 Java コミュ渡辺さんが JavaFX のスニペットを集めたプロジェクトを kenai に作っています。
Japan JavaFX User Group でのアナウンスはこちら。
NetBeans 6.8 の開発ビルドを使ってこの Kenai のプロジェクトを開いてみます。 Kenai のサポートも 6.7 からはいろいろと進化しています。プロジェクトの検索結果の画面ですが、6.8 と 6.7 では違いますね。上が 6.8, 下が 6.7 です。6.7 ではずぶんシンプルだったんですね。
NetBeans Kenai Support
NetBeans Kenai Support
Kenai ダッシュボード(左側)にプロジェクトが表示されています。右側にはプロジェクトの詳細が表示されます。こちらも 6.8 から追加された画面です。

NetBeans Kenai Support
ソースコードをリポジトリから取得するにはソースコードを「取得」を選択します。
NetBeans Kenai Support
関連するエントリ:

Friday Aug 28, 2009

この前 WidgetFX のプロジェクトを作るプラグインを作ってみました。
また Java エディタ用のパレットモジュールのチュートリアルをやってみました。
ということなので、Java ではなく、JavaFX のパレットにも WidgetFX とそこで使っている JFXtras のコードスニペットを追加するモジュールを作ってみたいと思います。ただし、どのコードスニペットをパレットから使えたら便利なのかというのは私にはわからないので ^^;) 今回はモジュールの部分だけいくつか作ってみます。

参考にしたコードスニペットのチュートリアルです。基本的はこのとおりに作って行きます。
手順はこのようになります。
  1. モジュールプロジェクトの作成
  2. 必要なライブラリの追加
  3. パレットカテゴリの作成 (レイヤーXMLに folder を追加)
  4. パレット項目の作成 (レイヤーXMLに file を追加, パレット項目の XML ファイルの作成)
  5. 実行
  6. 修正
NetBeans のモジュールプロジェクトを作成します。「NetBeans モジュール」>「モジュール」を選びます。

NetBeans Palette

「基本モジュール構成」のパネルでは「XML レイヤーを生成」にチェックを入れておいてください。

NetBeans Palette

作成されたプロジェクトは以下のようになります。resources フォルダはプロジェクトを作成した後に作りました。

NetBeans Palette

プロジェクトノードで右クリックして「プロパティー」を選びます。必要なライブラリを追加します。フィルタに「palette」などと入力してライブラリを絞り込みます。

NetBeans Palette

「共通パレット」と「テキスト API」を追加しました。

NetBeans Palette

ではパレット項目を追加していきます。「重要なファイル」の「XML レイヤー」>「コンテキスト内のこのレイヤー」ノードを展開していきます。

NetBeans Palette

すると「なんとかPalette」というノードが見つかります。JavaFX 用のパレットは「JavaFXPalette」以下に定義されています。新しいパレットカテゴリを作成するにはこの JavaFXPalette ノードでフォルダを作ります。

NetBeans Palette

3つ作りました。「JFXtras Layout」、「JFXtras Shape」、「WidgetFX」です。変更のあった状態のものは太字で表示されます。

NetBeans Palette

今度はプロジェクトにあるファイル layer.xml ノードを展開してみます。このレイヤー以下には作成されたフォルダのみが表示されていることがわかります。

NetBeans Palette

layer.xml をダブルクリックして XML ファイルを見てみます。作成されたフォルダが追加されていますよね。このようにレイヤーを編集する場合には、layer.xml の XML を直接編集してもよいし、プロジェクトウィンドウのツリーを編集してもどちらでもよいようです。慣れている人で layer.xml に何を書いたらいいかわかっているひとは layer.xml を直接編集したほうが早いですよね。私のように何を追加したらいいかわからない人は実際の GUI を見ながらツリーを見ながらのほうがいいでしょう。

NetBeans Palette

さてこの下にチュートリアルを参考してファイルを用意していきます。パレット項目の定義ファイルの1つです。resources 以下に置きます。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE editor_palette_item PUBLIC "-//NetBeans//Editor Palette Item 1.0//EN"
  "http://www.netbeans.org/dtds/editor-palette-item-1_0.dtd">

<editor_palette_item version="1.0">
    <class name="org.netbeans.modules.widgetfx.palette.JFXtrasGrid" />
    <description localizing-bundle="org.netbeans.modules.widgetfx.palette.Bundle"
               display-name-key="NAME_widgetfx-JFXtrasGrid"
               tooltip-key="HINT_widgetfx-JFXtrasGrid" />
</editor_palette_item>
layer.xml ファイルはこのようになりました。folder (パレットカテゴリ) 以下に file (パレット項目) を定義しています。
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.1//EN" "http://www.netbeans.org/dtds/filesystem-1_1.dtd">
<filesystem>
    <folder name="JavaFXPalette">
        <folder name="JFXtras Layout">
            <file name="JFXtrasPaletteGrid.xml" url="resources/JFXtrasPaletteGrid.xml"/>
            <file name="JFXtrasPaletteMig.xml" url="resources/JFXtrasPaletteMig.xml"/>
        </folder>
        <folder name="JFXtras Shape">
            <file name="JFXtrasPaletteShapeAlmond.xml" url="resources/JFXtrasPaletteShapeAlmond.xml"/>
            <file name="JFXtrasPaletteShapeArrow.xml" url="resources/JFXtrasPaletteShapeArrow.xml"/>
            <file name="JFXtrasPaletteShapeAsterisk.xml" url="resources/JFXtrasPaletteShapeAsterisk.xml"/>
            <file name="JFXtrasPaletteShapeAstroid.xml" url="resources/JFXtrasPaletteShapeAstroid.xml"/>
            <file name="JFXtrasPaletteShapeBalloon.xml" url="resources/JFXtrasPaletteShapeBalloon.xml"/>
            <file name="JFXtrasPaletteShapeDonut.xml" url="resources/JFXtrasPaletteShapeDonut.xml"/>
        </folder>
        <folder name="WidgetFX">
            <file name="WidgetFXPaletteConfig.xml" url="resources/WidgetFXPaletteConfig.xml"/>
        </folder>
    </folder>
</filesystem>
実際に実行してみます。新しく起動した NetBeans で JavaFX のファイルを開いてみます。エディタに開いたパレットに「JFXtras Layout」、「JFXtras Shape」、「WidgetFX」が追加されていますね。ただ...アイコンがデフォルトのままですね。

NetBeans Palette

以下のようにアイコンを追加してみました。icon16 と icon32 を追加します。WidgetFX と JFXtras 用を作って定義してみました。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE editor_palette_item PUBLIC "-//NetBeans//Editor Palette Item 1.0//EN"
  "http://www.netbeans.org/dtds/editor-palette-item-1_0.dtd">
<editor_palette_item version="1.0">
    <class name="org.netbeans.modules.widgetfx.palette.JFXtrasGrid" />

    <icon16 urlvalue="nbres:/org/netbeans/modules/widgetfx/palette/resources/jfxtras16.png" />
    <icon32 urlvalue="nbres:/org/netbeans/modules/widgetfx/palette/resources/jfxtras32.png" />

    <description localizing-bundle="org.netbeans.modules.widgetfx.palette.Bundle"
               display-name-key="NAME_widgetfx-JFXtrasGrid"
               tooltip-key="HINT_widgetfx-JFXtrasGrid" />
</editor_palette_item>

実際に実行するとこんな感じに。ほ〜なんとなくそれっぽくなってきました。ただ...パレットの順番をそろえたいですよね。

NetBeans Palette

もう一度レイヤーの中を覗いてみます。あ〜なるほど、この順番に表示されているのですね。

NetBeans Palette 

順番を合わせるように以下のようにノードをドラッグして変更しました。

NetBeans Palette

layer.xml は次のようになりました。position が追加されたことがわかります。

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.1//EN" "http://www.netbeans.org/dtds/filesystem-1_1.dtd">
<filesystem>
    <folder name="JavaFXPalette">
        <folder name="JFXtras Layout">
            <attr name="position" intvalue="1500"/>
            <file name="JFXtrasPaletteGrid.xml" url="resources/JFXtrasPaletteGrid.xml"/>
            <file name="JFXtrasPaletteMig.xml" url="resources/JFXtrasPaletteMig.xml"/>
        </folder>
        <folder name="JFXtras Shape">
            <attr name="position" intvalue="1600"/>
            <file name="JFXtrasPaletteShapeAlmond.xml" url="resources/JFXtrasPaletteShapeAlmond.xml"/>
            <file name="JFXtrasPaletteShapeArrow.xml" url="resources/JFXtrasPaletteShapeArrow.xml"/>
            <file name="JFXtrasPaletteShapeAsterisk.xml" url="resources/JFXtrasPaletteShapeAsterisk.xml"/>
            <file name="JFXtrasPaletteShapeAstroid.xml" url="resources/JFXtrasPaletteShapeAstroid.xml"/>
            <file name="JFXtrasPaletteShapeBalloon.xml" url="resources/JFXtrasPaletteShapeBalloon.xml"/>
            <file name="JFXtrasPaletteShapeDonut.xml" url="resources/JFXtrasPaletteShapeDonut.xml"/>
        </folder>
        <folder name="WidgetFX">
            <attr name="position" intvalue="1400"/>
            <file name="WidgetFXPaletteConfig.xml" url="resources/WidgetFXPaletteConfig.xml"/>
        </folder>
    </folder>
</filesystem>

さてこれでだいたいいいでしょうか、大きなアイコンで表示してみます。アイコンも順番もそろっていい感じになってきました。

NetBeans Palette

ということで、外枠だけ作ってみました。実際にどんなパレットが必要か、どんなコードを入れたらよいのかというのはアイディア募集ということにさせてください ^^;

Friday Aug 07, 2009

WidgetFX のサンプルプロジェクトを作る NetBeans プラグインを作ってみました。nbm は1つです。nbm を適当なところにダウンロードして、NetBeans のツール>プラグイン、ダウンロード済みタブから選んでインストールしてみてください。対応する NetBeans は 6.7.1 のみです。あくまで個人用に作ったものなので自己責任でお願いしますね。

インストール後は、普通にプロジェクトを作成します。WidgetFX アプリケーションは JavaFX カテゴリ以下に置くことにしました。

これを選んでプロジェクトを作ると JavaFX アプリケーションのプロジェクトをベースにし、
  • Widget を元にしたサンプルソース
  • JavaFX SDK の jar を追加
  • 実行方法を Java WebStart に変更
の変更の入ったプロジェクトを作成します。なのでこのまま実行して動くようになっています。

デフォルトは以下のようなアプリケーションを実行します。

今回は簡単に作ったのですがいくつか改善したい点もあります。
  • 依存関係
    プラグインをインストールする時はオンデマンド機能が入っている場合は JavaFX のプロジェクトをあらかじめ作っておいて JavaFX を有効にしておいてください。依存関係からなのか JavaFX がまだ有効になってない場合はエラーになってしまいます。
  • WidgetFX の Javadoc
    ライブラリには WidgetFX の SDK の jar が入っています。これと一緒に Javadoc も入れたかったのですが、NetBeans が認識してくれなかったため入れていません。
  • サンプルのプロジェクト
    今回は zip にまとめたサンプルを展開するだけのプロジェクトになっています。プラグイン側から細かい指定で作成してもいいでしょうね。
このプラグインは非常に簡単なので誰でも作れると思います。参考にしたチュートリアルです。日本語訳もあるのですが最新のものとは同期がとれていないものもあります。
水曜日は 日本 JavaFX ユーザグループの第1回勉強会に参加してきました。
短い時間でしたが盛りだくさんの内容でした。大変参考になりました。
発表されたみなさん、参加されたみなさん、お疲れさまでした。次回も楽しみにしています。

WidgetFX は一度動かしただけで使ってなかったのですが、ウィジェットってすごく簡単にできるのですね!ライブラリに jar を入れるのが面倒だったり、実行方法を Java Web Start にするのも面倒なので、NetBeans のプラグインでも作ってみようかと考えています...

Tuesday Jul 28, 2009

バグ修正と JavaFX 1.2 サポートを含む NetBeans 6.7.1 がリリースされました。詳細は以下の大野さんからのアナウンスをご覧下さい。
ダウンロードは ja.netbeans.org からどうぞ。

今回は JavaFX が最新の 6.7 でサポートされたということで、使ってみようとしている方も多いのではないでしょうか。1点、Mac OS X 上で使う場合の注意点を書いておきます。以下のように、ひょっとすると JavaFX の出力が出力ウィンドウで文字化けしてしまうかもしれません。これはバグというわけではなくて、設定を変更する必要があります。

netbeans

このような現象がおきた場合、NetBeans 6.7 は Java6 を使う設定になっているはずです。NetBeans メニューから「NetBeans について」を選び、どの JDK が使われているか確認してみてください。JavaFX のコマンド群は JDK5 をデフォルトで使うため、エンコーディングの不一致からこのような現象になります。これを解決するには、一番簡単な方法は NetBeans を JDK5 で実行することです。Java Preferences ユーティリティで JDK5 を一番上にもってくるか、netbeans.conf の netbeans_jdkhome を JDK5 に設定します。
netbeans_jdkhome="/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home"

参考:

Wednesday Jun 03, 2009

JavaFX 1.2 SDK と NetBeans 6.5.1 用のプラグインがリリースされました。今回は Linux 版と Solaris 版も Beta という形で提供されていますね。これはうれしいですね! ダウンロードは以下からどうぞ。
リリースノートとインストールの手順です。 NetBeans プラグインも日本語に
NetBeans 6.5.1 をお使いの方はツール>プラグインから JavaFX プラグインをインストールするか、すでにインストールしてある場合は更新してください。これから使い始める方は上記ダウンロードページから NetBeans のインストーラを選んでください。1.2 からようやくプラグインも日本語になりました。以下は日本語になったパレットです。

NetBeans JavaFX

Ubuntu 8.04 と OpenSolaris 2009.06 で動作
1.2 SDK のシステム要件です。Linux と Solaris は Ubuntu 8.04 と OpenSolaris 2009.06 と書かれていますね。JDK はともに JDK6u13 以上、JDK6u14 が推奨です。
また GStreamer が必要です。Ubuntu はまだ確かめていませんが、OpenSolaris ではデフォルトのインストールで入っていますので別途インストールする必要はありません。心配ならば gst-inspect --version コマンドでバージョンを確かめてみてください。
% gst-inspect --version
実際に動かしてみましょう。OpenSolaris 2009.06 で NetBeans プラグインでサンプルにあるメディアボックスを動かしてみました。メディアもちゃんと再生できました。

NetBeans JavaFX on OpenSolaris

ネットビーンズトラベルを再生してみた
ならばサンプルプログラムにメディアファイルを追加してネットビーンズトラベルを再生してみます。おお、よかった、無事に動画も音も再生できました。

NetBeans JavaFX on OpenSolaris

Tuesday Mar 10, 2009

NetBeans の JavaFX プラグイン、エンコーディング指定の問題は 1.1 で直りましたが、日本語を含む時にパースに失敗するという以下の問題はまだ直っていません。前回「NetBeans が使うエンコーディングを UTF-8 にしたら動いたかも」と思いっきり誤報してしまいました、スイマセンでした。
  • 156117: I18N : parsing JavaFX codes with Japanese characters fails
netbeans javafx plugin

週末時間があったのでデバッグしてみました。実は前にもチャレンジしたことがあったのですが、その時はどうしてもわからなかったんですよね >< でも今回は試験的なパッチを作るところまでできました!

org.antlr.runtime.ANTLRReaderStream の load() でデータを読み込んでいるのですが、ここで ASCII 文字以外は壊れてしまっていました。実際に読み込んでいるのはプラグイン側の LexerInputStream というクラスですが、java.io.InputStream を使っているのに実装している read() は、バイトではなく、文字そのものを返してしまっています。これが問題ではないかと... ここを正しくバイトを返すようにしたらちゃんと動くようになりました。パッチをバグレポートに添付すると早速担当エンジニアが直してくれてチェックインしてくれました。わーい!これでプラグインの次のアップデートには入っていくことなりそうです。

私の環境でビルドした jar ファイルを公開しておきますね。最新の NetBeans 6.5 のプラグインで確認しています。興味のある方は是非使ってみてください。おかしな動作があればすぐに知らせてください! 更新部分は org-netbeans-modules-javafx-lexer.jar の一つです。
  • <NetBeans インストールディレクトリ>/javafx2/modules/org-netbeans-modules-javafx-lexer.jar
のものと置き換えて再起動してください。この jar ファイルは NetBeans ディレクトリが書き込みできない場合は、ユーザーディレクトリにあるかもしれませんので、ファイル名で検索してみてください。

注 : あくまで個人的にビルドしたものなので自己責任でお願いします。

Monday Mar 02, 2009

サン関連の twitter をリストしてみました。まだまだあるでしょうね、とりあえず私がフォローしているぶんです。NetBeans もありますし、つい最近 JavaFX チームも始めましたね。The Planetarium もあります。

Sun Microsystems sunmicrosystems / Sun Microsystems
Schwartz's Blog SunCEOBlog / Schwartz's Blog
SunIRNews SunIRNews
Sun News Feed SunNews / Sun News Feed
Sun Blogs SunBlogs / Sun Blogs

 
BigAdmn BigAdmn
SDN Team_SDN / SDN

 
Francois Orsini JavaDB / Francois Orsini
DukeJava DukeJava
theplanetarium theplanetarium
JavaFX team @ Sun javafx4you / JavaFX team @ Sun
NetBeans Team netbeans / NetBeans Team

日本語では twicco で作ったコミュニティも NetBeansOpenSolaris があります。NetBeans のアイコンは「まめ」です。明治大学スポーツはおまけということで。

NetBeans日本語コミュニティ  ja_netbeans / NetBeans日本語コミュニティ
OpenSolaris_fan OpenSolaris_fan


明治大学スポーツ  meiji_fan / 明治大学スポーツ
他にもあったら教えてください。

Thursday Feb 19, 2009

netbeans dvd kit

NetBeans 6.5 をベースとしたスターターキットの DVD イメージがダウンロードできるようになっていますね。日本語メーリングリストでアナウンスされました。
NetBeans 6.5 はもちろん、JavaFX バンドル、GlassFish、それにドキュメントなどなどです。1枚あると便利ですよ!以下からダウンロードできます。

Wednesday Feb 18, 2009

JavaFX は NetBeans などの IDE で作業をするのが一般的で楽ですがコマンド行からもコンパイルやパッケージング、実行ができるんですね。以前 NetBeans の関係で調べていたことがありここに簡単にメモしておきます。

JavaFX のツール群

JavaFX SDK で提供されている主なツールは以下のようになっています。javafx は JDK でいうと java, javafxc は javac, javafxdoc は javadoc というように JDK とだいたい同じです。

javafx
JavaFX アプリケーションの実行
javafxc
JavaFX ファイルのコンパイル
javafxdoc
JavaFX のソースから HTML 形式でドキュメントを生成
javafxpackager
JavaFX アプリケーションを配備用にパッケージング
アプレット用 HTML, Web Start 用 jnlp の生成

JavaFX SDK のインストール場所

コマンドは JavaFX SDK をインストールしている場所の bin/ ディレクトリ以下にあります。NetBeans のプラグイン経由でインストールした場合はユーザーディレクトリ以下か、NetBeans のインストールディレクトリの javafx2 クラスタ以下にありますので探してみてください。

プラットフォーム
SDK の場所(デフォルトのインストールオプションの場合)
Mac OS X
SDK をインストールした場合:
  • /Library/Frameworks/JavaFX.framework/Versions/Current
    (/usr/bin にリンクされます)
NetBeans からプラグインをインストールした場合:
  • <ユーザーディレクトリ>/javafx-sdk
  • <NetBeans インストールディレクトリ>/javafx2/javafx-sdk
Windows
SDK をインストールした場合:
  • C:\Program Files\JavaFX\javafx-sdk
NetBeans からプラグインをインストールした場合:
  • C:\Users\<ユーザー>\.netbeans\6.5\javafx-sdk
  • C:\Program Files\NetBeans 6.5\javafx2/javafx-sdk

ドキュメントは docs/ 以下にあります。ここでは簡単に説明するだけですので詳細は SDK に付いている各ツールのドキュメントを参照してください。

javafxc - JavaFX ソースをコンパイル

まずコンパイルしてみましょう。javafxc コマンドにソースファイルを指定します。javac コマンドと同じですね。
% javafxc javafxapplication/Main.fx
例えば、パッケージ javafxapplication に Main.fx があるとします。
% ls javafxapplication/
Main.fx
以下のようにファイルを指定します。
% javafxc javafxapplication/Main.fx
クラスファイルは何も指定しないとソースファイルと同じ場所に作成されます。
% ls javafxapplication/
Main$Intf.class        Main.fx      Main.class
%

javafx - JavaFX アプリケーションを実行

次に生成されたクラスを実行してみます。javafx コマンドは基本的にはクラスパスなどの設定を行なった後に java コマンドをキックしています。

先ほどコンパイルしたディレクトリから Main クラスを指定して実行します。別のディレクトリでは -cp オプションを付けてクラスパスを指定します。
% javafx javafxapplication.Main
jar ファイルの実行は javafxpackager で説明します。

javafxdoc - JavaFX ドキュメントを生成

javafxdoc を使ってドキュメントを作成してみます。この例では出力先のディレクトリに /tmp/javafxdoc を、ソースのあるディレクトリに DisplayShelf/src、そしてパッケージを指定しています。
% javafxdoc -d /tmp/javafxdoc -sourcepath DisplayShelf/src displayshelf
以下のようなドキュメントが生成されます。index.html を開いてみてください。
JavaFX Documentation
javafxpackager - 配備用にアプリケーションをパッケージング

javafxpackager はソースをコンパイルするだけでなく、特定のプロファイルにもとづいてアプリケーションの jar やアプレット用の HTML ファイル、Web Start 用の jnlp ファイルを作成してくれます。現在サポートされているプロファイルは desktop か mobile です。JavaFX 1.0.1 までは -encoding オプションが用意されていなかったため、javafxpackager をそのまま使っている NetBeans ではエンコーディングの指定ができませんでした。以下は簡単な例です。
% javafxpackager \
        -src src \
        -d /tmp/dist \
        -appName DisplayShelf \
        -appVendor 'JavaFX Samples Team' \
        -appWidth 600 \
        -appHeight 300 \
        -appClass displayshelf.Main \
        -encoding UTF-8  \
        -p desktop \
        -draggable
ここで使っているオプションをあげておきます。

オプション
説明
-src
-sourcepath
ソースのあるディレクトリのトップを指定します。
src/<パッケージ名>/... の構成では src からを指定します。
-d
-destination
出力先を指定します。デフォルトは実行したディレクトリ以下の ./dist になります。
-appName
デフォルトのアプリケーション名を指定します。
-appVendor
デフォルトのアプリケーションベンダー名を指定します。
-appWidth
アプレットの幅を指定します。
デフォルトは 200 ピクセルです。
-appHeight
アプレットの高さを指定します。
デフォルトは 200 ピクセルです。
-appClass
main を含むクラスを指定します。この引数は必須です。
-encoding
ソースファイルのエンコーディングを指定します。
指定しない場合は実行している環境のエンコーディングになります。
-p
-profile
JavaFX のプラットフォームを指定します。
現在サポートされているプロファイルは desktop か mobile です。指定しない場合は desktop になります。
-draggable
ブラウザからドラッグ可能なアプリケーションにします。

パッケージングされたアプリケーションを実行

プロファイルを desktop で javafxpackager を実行すると次のファイルが生成されます。<アプリケーション名> には -appName オプションで指定した名前が入ります。

<アプリケーション名>.jar アプリケーションの jar ファイル
<アプリケーション名>.html アプレット用 HTML ファイル
<アプリケーション名>_browser.jnlp ブラウザ JNLP ファイル
<アプリケーション名>.jnlp Java Web Start JNLP ファイル

Java Web Start で起動するには jnlp ファイルをブラウザで開くか javaws を使って実行できますね。
% javaws /tmp/dist/DisplayShelf.jnlp
JavaFX
アプレットもブラウザで開けばいいですね。
JavaFX
普通にスタンドアロンのアプリケーションで実行するには javafx コマンドを使って、-cp で jar を指定し、メインクラスを指定します。
% javafx -cp /tmp/dist/DisplayShelf.jar displayshelf.Main
のようにすれば実行できます。
JavaFX

Friday Feb 13, 2009

追記 : UTF-8 にしても動かないケースを Tackn さんに教えてもらいました。ありがとうございました。

NetBeans の JavaFX で日本語を使うとパースがうまくいかない場合があるようです。バグとして以下に登録してあります。
  • 156117: I18N : parsing JavaFX codes with Japanese characters fails
以下の右側のスクリーンショットのように、コードの色付けがおかしくなり、赤いアンダーラインのエラーストライプも付いてしまいます。左側が正しいのですが比べるとわかりますね。この問題が発生するとがくっとパフォーマンスが落ちます。ただコンパイルは通りますし、実行もできます。

NetBeans JavaFX Plugin

いろいろ試してみるとどうやら NetBeans が使うデフォルトのエンコーディングが Shift JIS の時にに発生することがわかりました。ということは Windows では必ず発生してしまいますね。Mac 上では JDK6 で発生します。JDK1.5 ではエンコーディングは UTF-8 なのでこの問題が発生しません。JavaFX のソースコードのエンコーディングは関係ありませんでした。NetBeans が使うエンコーディング、つまり起動した OS のエンコーディングが関係しているのではないかと思っています。

ならばここで -Dfile.encoding=UTF-8 をつけて起動すると...
$ netbeans -J-Dfile.encoding=UTF-8
私の確認するかぎりでは小さいプログラムですがこの問題は発生しませんでした。-J-Dfile.encoding=UTF-8 オプションは etc/netbeans.conf ファイルの netbeans_default_options に書いておくことができます。

もしコードのカラーリングがおかしかったり、エラーでもないのにエラーストライプがついていたら、このオプションを試してみてください。

Thursday Feb 12, 2009

JavaFX 1.1 SDK がリリースされました。詳細は橘さんのブログを見ていただくとして、NetBeans プラグインに関してです。

ソースのエンコーディング指定が可能に

以前「NetBeans 6.5 JavaFX プラグインのソースエンコーディング設定」で書いたようにこれまでのプラグインではソースコードのエンコーディングの指定ができませんでした。また JavaFX SDK 側の実装によりプラットフォームのデフォルトのエンコーディング以外は使えませんでした。このためエンコーディングをプラットフォームのエンコーディングに合わせないと日本語は実行時に文字化けしてしまいます。今回その問題が解決しています。プロジェクトのプロパティーダイアログの「Sources」カテゴリではソースコードのエンコーディングを指定できるようになっています。Windows でも UTF-8 を使うができます。

NetBeans JavaFX プラグイン

インストールはアップデートセンターから

インストール方法は日本語 NetBeans 6.5 にプラグインを追加する方法をおすすめします。すでに NetBeans 6.5 の JavaFX 1.0 用のプラグインが入っていれば更新がかかるはずです。これからインストールする場合には NetBeans 6.5 の「ツール」>「プラグイン」の「使用可能なプラグイン」で検索してみてください。プラグインの日付が古ければ「カタログを再読み込み」をしてみてください。

NetBeans JavaFX プラグイン

Wednesday Feb 11, 2009

SDC に NetBeans 6.5 の連載が始まりました。1回目は橘さんの JavaFX プラグインです。

Sun Developer Connection - ここが知りたい NetBeans 6.5
昨年の NetBeans の連載も載せておきますね。こちらも参考になります。

事例で学ぶNetBeans 6.0の新機能

Thursday Jan 08, 2009

ほ〜面白いですね。Twitter の検索から JavaFX で表示するだけの簡単なプログラムです。
NetBeans のプロジェクトもついているので手元で実行できます。ja_netbeans の発言を表示させてみました。実行モードを切り替えてスタンドアロン、アプレットで実行してみました。


This blog copyright 2009 by katakai