2009年 2月 06日 金曜日
アークタンジェントを表示
座標上の2点を結ぶ直線の傾きを求めるアークタンジェントの結果を表示するプログラムを JavaFX で作ってみました。これは、たとえば、車のアニメーションで、進行方向に車の向きを変えたい時に、役立ちます。現在の座標 (x1, x2) から、進行方向の座標 (x2, y2) への直線の傾きを求めて、アークタンジェントの結果の分の角度だけ、イメージを傾けてやると、進行方向に向かっているようなアニメーションができます。
実行結果: 「斜め45度」です。お笑いの方ではありません (でも、結構好きです)。
このサンプルでは、(0, 0) 座標から、ドラッグ & ドロップされた丸までの座標と、その角度を表示してくれるというものです。
このプログラムは、 以前紹介した、JFXBuilder というのを使っているのですが、JFXBuilder で生成したコードは JFXBuilder のランタイムライブラリがないと起動できません。なので、生成したコードを、ランタイムを使わずに実行できるよう、手で書き直してつくりました。
で、何が言いたいかというと... ソースを載せておきますが、かなり汚いコードです。自動生成されていますので。そのいいわけのために長々書きました。
大したことはやっていませんが、ただ、このぐらいのプログラムが、簡単に作れてしまう JavaFX はやっぱり便利ですねー。
Posted at 12:08午後 2 06, 2009 by kenji in JavaFX の素人 |
2009年 2月 05日 木曜日
SDC に記事を書きました。
SDC に 「JavaFX プラグインを使おう!」という記事を書きました。NetBeans 6.5 についての連載なんですが、JavaFX プラグインということで、私が書かせてもらいました。SDC のページにアップされるのは、2月の前半ぐらいだと思いますが、そこで紹介したサンプルの web start 版をおいておきます。
クリックすると笑ったり怒ったりという簡単なサンプルです。
Web start (署名なし)
Web start (署名あり)
ソースコードは SDC の記事が発表されたら読んでみてください。
Posted at 12:36午前 2 05, 2009 by kenji in JavaFX の素人 | 投稿されたコメント[4]
2009年 2月 04日 水曜日
JavaFX でもっと多彩な表現を! JFXtrans の紹介
JavaFX では、基本的な形を表現するのはとても簡単なんですが、もっと簡単に使えるように、コンポーネントとして誰か用意してくれないかな... なんて思っていたのですが、やっぱりそういう人がいてくれました!
このページの launch ボタンから、どんなコンポーネントがあるのかサンプルをみることができます。また、javadoc も同じページにリンクがありました。見てみると、コンポーネントだけではなく、レイアウトの設定や、以前 blog で書いた、 EDT 上での問題 を解消してくれう API (JFXWorker) なってのもあるようです。
使い方は簡単です。
1. ZIP 版 の JFXtrans をダウンロードします。jar 版もありますが、ライブラリが足りないので、ZIP 版の方がよいと思います。
2. NetBeans で、JavaFX のプロジェクトを作ります。
3. #1 でダウンロードした zip を解凍し、JFXtrans-0.2.jar 及び、lib 以下にある、jsihouette-geom-0.3.jar と、jsihouette-scene-0.3.jar の3つの jar をプロジェクトに追加します。

4. 使用する JFXtrans のクラスをインポートします。
試しに、矢印を表示するコードを書いてみました。
package javafxapplication20;
import org.jfxtras.scene.shape.Arrow;
import javafx.scene.paint.*;
import javafx.stage.Stage;
import javafx.scene.Scene;
Stage {
title: "MyApp"
scene: Scene {
width: 200
height: 200
content: [
Arrow {
width: 100
height: 60
rise: 0.5
depth: 0.5
fill: Color.BLACK
}
]
}
}
実行結果は、以下の通りです。

これからもっともっと便利なコンポーネントが追加されるかもしれませんね。
注目です!
Posted at 12:47午前 2 04, 2009 by kenji in JavaFX の素人 |
2009年 2月 03日 火曜日
java passion: JavaFX Technology Overview
以前に紹介した、 JavaFX の無料オンラインコース が始まったので、中身をみてみました。今回は初回かつ overview ということで、宿題はないそうです。中身は、JavaFX とはなんだ?というのを解説し、その魅力を語ってくれています。読んでいて面白かったですが、英語なのが残念ですね... 翻訳しよう!とも思ったのですが、長くてちょっとする気がしませんでした。どなたか協力してくださる方がいましたら、一緒にやりたいですね。どうですか??
今ある日本語のページで、このレッスンと同じことするなら、
1. SDC の JavaFX の FAQ のページ
2. SDC の JavaFX のテクノロジーのページ
3. 桜庭祐一さんの「ついにベールを脱いだJavaFX」第1章
ぐらいを読んでおけばよいかと(なんとなくですが...)
最後の桜庭さんは、先日、 今月の 2時間で学ぶ Java Hot Topic (2009年1月号) でお話してくださった桜庭さんです。Java Expert #3 のときにいろいろお世話になったのですが、お会いしたのは... 桜庭さんもおっしゃっていましたが、2回目ですね。たぶん、Sun Tech Days の JavaFX ハンズオンラボでお会いしたとおもいます (間違っていたらすみません.... )
桜庭さんの blog Everyday JavaFX も是非ご覧ください。
Posted at 12:47午前 2 03, 2009 by kenji in JavaFX の素人 |
2009年 1月 31日 土曜日
Pure Java ブラウザ - Lobo browser -
JavaFX スクリプト (.fx ファイル) を直接起動することができる Lobo browser というものがあるので、ちょっと使ってみました。 The Lobo Project からダウンロードできます。コンセプトは Pure Java で動く browser ということらしいです。これを見て、「Hot Javaかよ!」と思った方。かなりの Sun 通ですね。10数年前、Sun でも 100% Pure Java で動く web ブラウザ、「Hot Java」なるものを出していました。コンセプトとしては、とても斬新なんですが、当時のコンピュータの処理スピードと、まだ発展途上であった JavaVM では、あまりに遅く、残念ながら消え去ってしまいました。当時、インターンとして、Sun で働いていたのですが、よくテストをお願いされ、「こんなの誰が使うんだよなー」って思っていたものです。ぜんぜん関係ないですが、当時のサンの社員の方が、「これからは DeskTop は必要なくなって、ブラウザだけで、すべてが行われる時代になる」といっていました。当時、無知な(今でも十分無知ですが...)学生だった私は、「そんなわけないじゃーん!」っと思っていましたが、その方の予想は今となっては、とても的を射た考えだったなぁ、と思います。今、当時のその方とほぼ同じぐらいの年齢になりましたが、そんな的確な予言は全くできませんねー。
関係ない話で長くなりましたが、Lobo browser に戻ります。試したのは、Windows XP 上です。
インストールし、起動した画面です。

デフォルトのホームである、Lobo project のトップページが表示されました。とりあえず、http://jp.sun.com とかに移動して browser として使えるか見てみると... ダメだこりゃ。
レイアウトとかばらばらになってしまっています。javascript とか使ってあるので、browser に対応してないと、どうにもならないみたいですね。私の blog ページみたいな単純なものは、ちゃんと表示されました。

日本サントップページ
それはさておき、問題は JavaFX が起動できるかです。blog にはってあるソース をアドレスに指定して起動してみました。すると...
おお、ちゃんと動いていますね。
web 上に落ちているサンプルとかを簡単に実行してみたいときには、いいかもしれません。
また、ほかの browser も早くこうなるといいですねぇ...
Posted at 12:43午前 1 31, 2009 by kenji in JavaFX の素人 |
2009年 1月 30日 金曜日
JFXBuilder を使ってみました。
JavaFX.com で紹介されていたのですが、ReportMill 社の JFXBuilder なるものがあってちょっと使ってみました。基本的は、お絵かきツールで書いた絵を JavaFX コードにしてくれるというものです。
JFXBuilder ページの Launch ボタンをクリックすると、インストールが始まります。インストールされたプログラムをクリックすると、エディタが立ち上がります。
私は絵心がないので、まったくうまい絵はかけないのですが、お絵かきツールで作った絵を JavaFX スクリプトにしてくれるのはうれしいですね。影をつけたりグラデーションをつけたりする Effect や、図形を、塗りつぶしたり、回転させたりするのも GUI でできてなかなか楽しいです。もう少し図形を書く手法 (現在は 直線、円形、四角形、多角形、星型、フリーフォームぐらいしかないです)
JavaFX Production Suite は、イラストレータとかが必要で私は試すことができないのですが、こちらなら
誰でも使えますね。

簡単な図を書いてみました。意味はありません。本当はねこび~んを書こうと思ったのですが、完全に挫折しました... 絵心のない私には、あんなにかわいいキャラクターは書けません...
Posted at 02:51午後 1 30, 2009 by kenji in JavaFX の素人 |
2009年 1月 22日 木曜日
Links for Chinese, Japanese and Russian are avairable.
The site links for each GEO (Chinese, Japanese and Russian) are available from JavaFX SDN site.
Also, Chinese site link from JavaFX.com is available.
That's one small step for JavaFX, one giant leap for world wide JavaFX developer!
Posted at 10:42午前 1 22, 2009 by kenji in JavaFX の素人 |
JavaFX SDN から日本語版へのリンクができました。
JavaFX SDN から日本語、中国語、ロシア語のサイトへのリンクができました。また、 JavaFX.com からは中国語サイトへのリンクも追加されました。
小さな一歩ですが、少しずつ、世界に浸透している感がありますね!
Posted at 10:37午前 1 22, 2009 by kenji in JavaFX の素人 |
2009年 1月 19日 月曜日
無料オンラインコース: JavaFX プログラミング - 1月30日よりスタート!
SDN Program News Blog にあったのですが、JavaFX の無料オンラインコースが 1月30日より http://www.javapassion.com/javafx/ 開始されるようです。
1. javafxprogramming-subscribe-AT-googlegroups-DOT-com に空メールを送る
2. "Google Groups: Please confirm subscription to javafxprogramming" というタイトルで返信メールが英語で届きます。内容は、このメールに返信するか、メールの本文にある URL にアクセスすることで、最終登録が完了する、という感じです。
3. #2 の URL にアクセスすると、"You have successfully joined the group javafxprogramming" というページに飛びます。
これで、登録は完了です。いまいちよく分かっていないのですが、とりあえず読んで分かったことを箇条書きにしてみました。
1. 決まった日に、http://www.javapassion.com/javafx/ に決められた日に教材と課題が出題されます。
2. 教材を読み、課題をそのたび毎に決められたアドレスに投函します。
3. 分からないことや質問は、事前に登録した上記のグループに投函して、回答を得ます。
4. このオンラインコースの作成者 (講師) に質問することはできないようです。
5. 登録は、このクラスを取っている人の人数を確認するためと、alias に入ってもらい、クラスを取っている人同士で、質問等を解決するためのようです。
とりあえず、登録してみたのですが、はじまる前なのに、既にかなりの量のメールトラフィックがありますね。この alias 自体はクラスとは直接関係ないのかもしれません。
この blog でも、面白そうな課題があったら、報告していきたいと思います。皆さんも、是非、登録してみてください。
Posted at 05:04午後 1 19, 2009 by kenji in JavaFX の素人 |
2009年 1月 16日 金曜日
トップスピン
以前のハンズオンの課題のアニメーションで、「どうして、テニスボールじゃないの?」と言われて作成してみました。基本的にほとんど同じなのですが、背景にネットを使ったり、ボールにグラデーションをつけたりと、微妙に細工をしていています。
一応、ソースも貼り付けておきます。
package javafxapplication15;
import javafx.animation.*;
import javafx.ext.swing.*;
import javafx.scene.*;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.*;
import javafx.scene.paint.Color;
import javafx.scene.paint.LinearGradient;
import javafx.scene.paint.Stop;
import javafx.scene.shape.*;
import javafx.stage.*;
var interpolate = Interpolator.LINEAR;
var x = 0;
var y = 110.0;
var w = 10.0;
var h = 10.0;
var color = Color.LIME;
var opacity = 1.0;
var t = Timeline {
keyFrames: [
KeyFrame {
time: 0s
values: x => 0
},
KeyFrame {
time: 0.1s
timelines: [
Timeline {
keyFrames: [
KeyFrame {
time: 0s
values: [
w => 10.0,
h => 10.0
]
},
KeyFrame {
time: 0.2s
values: [
w => 15.0 tween interpolate
h => 15.0 tween interpolate
]
},
KeyFrame {
time: 0.4s
values: [
w => 40.0 //tween interpolate,
h => 37.0 //tween interpolate
]
},
KeyFrame {
time: 0.41s
values: [
w => 0
h => 0
]
}
]
}
]
},
KeyFrame {
time: 0.1s
values: x => 40 tween interpolate
},
KeyFrame {
time: 0.3s
values: x => 150 tween interpolate
},
KeyFrame {
time: 0.5s
values: x => 500 tween interpolate,
}
]
}
var t2 = Timeline {
keyFrames: [
KeyFrame {
time: 0s
values: y => 110
},
KeyFrame {
time: 0.3s
values: y => 350 tween interpolate
},
KeyFrame {
time: 0.5s
values: y => 150 tween interpolate
}
]
}
var buttons =
HBox {
content: [
SwingButton {
text: "Start"
action: function():Void {
t.playFromStart();
t2.playFromStart();
}
},
SwingButton {
text: "Stop"
action: function():Void {
t.stop();
t2.stop();
}
},
SwingButton {
text: "Pause"
action: function():Void {
t.pause();
t2.pause();
}
},
SwingButton {
text: "Resume"
action: function():Void {
t.play();
t2.play();
}
}
]
}
var ball = Group {
content: [
Ellipse {
centerX: bind x
centerY: bind y
radiusX: bind w
radiusY: bind h
fill: LinearGradient {
startX: 0.0,
startY: 0.0,
endX: 1.0,
endY: 0.0,
proportional: true
stops: [
Stop {
offset: 0.0
color: Color.YELLOW
},
Stop {
offset: 0.1
color: Color.YELLOW
},
Stop {
offset: 0.2
color: Color.WHITE
},
Stop {
offset: 0.3
color: Color.YELLOW
},
Stop {
offset: 0.7
color: Color.YELLOW
},
Stop {
offset: 0.8
color: Color.WHITE
},
Stop {
offset: 0.9
color: Color.YELLOW
},
Stop {
offset: 1.0
color: Color.YELLOW}
]
}
opacity: bind opacity
}
]
}
var canvas =
Scene {
fill: Color.WHITE
content: [
VBox {
spacing: 10
content: [
ImageView {
image: Image {
url: "http://blogs.sun.com/kenji/resource/court.jpg"
}
},
buttons
]
},
ball
]
}
Stage {
width: 600
height: 500
visible: true
scene: canvas
}
Posted at 11:55午前 1 16, 2009 by kenji in JavaFX の素人 | 投稿されたコメント[2]
2009年 1月 12日 月曜日
WidgetFX を使ってみました。
片貝さん から、WidgetFX ってちょっと使ってみてくれない?とお願いされたので、ちょっと使ってみました。なかなか面白そうなツールですね。
Widget FX は、JavaFX ベースのウィジェット (Windows ではガジェットと呼ばれる) を作成するための SDK です。使い方は簡単ですが、ドキュメントがあまりそろっていないような感じなので、この blog を書くのにはちょっと時間がかかってしまいましたね。でも、やり方さえわかってしまえば、JavaFX のアプリケーションを書く感覚で、ウィジェットを作成できるので、とても面白いと思います。
widgetfx のページから、SDK をダウンロードして解凍しておきます。SDK の中身は WidgetFX-API.jar と javadoc と LICENSE ファイルだけです。
2. NetBeans で、適当な JavaFX アプリケーションプロジェクトを作成する。
3. Libraries を右クリックして、「Add jar/folder」を選択する
4. #1 の WidgetFX-API.jar を追加する
Widget クラスでの、表示に関する処理は、 skin で定義されるようです。なので、skin の中で、表示するコンポーネントを scene で定義します。この scene は、Stage クラスの scene とは違い、Node 型で、直接 Swing コンポーネントなどを定義できます。(この辺りの仕様がちょっとよくわかりませんでした。ただ、ソースをみていただけば、なんとなくどうやって作るのかは感じがつかめるかと。
package javafxapplication7;
import javafx.scene.control.Skin;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import org.widgetfx.*;
Widget {
width: 100;
height: 100;
visible: true;
skin: Skin {
scene: Text{
y: 15
content: "Hello World"
fill: Color.GREEN
stroke: Color.RED
font: Font{
name:"Verdana"
}
}
}
}
これを、Web Start 形式 (JNPL) ファイルとしてビルドします。やり方は 片貝さんの blog の参照してみてください。また、同様にアプレットでも実行し、その web アドレスを保存しておいてください。後でウェジットを追加するテストの際に、そのアドレスを使用します。(私の場合は、http://localhost:8082/servlet/org.netbeans.modules.javafx.project.JnlpDownloadServlet/C%3A/Users/tkenji/Documents/NetBeansProjects/JavaFXApplication7/dist//JavaFXApplication7.html でした。)
ここで、先ほど作成した JNLP ファイルを追加するのですが、NetBeans が作成する JNLP のコードベースは、アプレットで実行したときと同じパスになるので、とりあえず、そのパスで追加します。
私の場合は、
http://localhost:8082/servlet/org.netbeans.modules.javafx.project.JnlpDownloadServlet/C%3A/Users/tkenji/Documents/NetBeansProjects/JavaFXApplication7/dist//JavaFXApplication7.jnlp
となります。
これで追加は完了です。ついでに、 Widget FX にあるサンプルもいくつか載せてみました。

それぞれのウィジットをドラッグ & ドロップで、デスクトップの好きな位置に配置することもできます。このときは、ウィジットの透明度を変化させられるスライドバーがつきます。この辺りもちょっと面白いですね。

最後に、お気づきの方もいらっしゃるかもしれませんが、上の方法だと、Hello World のウェジットは、NetBeans が起動している状態でないと、再起動に失敗します。なので、常に作成したウェジットを起動したい場合には、JNLP ファイルのコードベースを変更して、ローカルなりネット上なりで、起動できるように変更しておく必要があります。(NetBeans からコードベースの設定とかもできるといいんですけどね... ちょっと見た感じではなさそうでした。)
これを使えば、既存の JavaFX のアプリケーションも簡単に、ウェジットとしても使うことができそうですね。
Posted at 02:02午前 1 12, 2009 by kenji in JavaFX の素人 |
2009年 1月 07日 水曜日
翻訳: イメージの奥行き
Vaibhav's Blog Space より、イメージの z 座標 (奥行き) についての blog の翻訳です。
While writing some of the samples in which we have to play with images, we sometimes has to manage the depth of the images. Like for the Carousel example, every image has a depth. In that example, actually images are not overlapping with each other, so we never need to write the Z-Order concept. But if someone want to write a Carousel or some application in which Images are residing over other images, we need to set the Z-order of Images. Z-Order in literal term means depth-ness of images. JavaFX gracefully provide API's to set the Z-order of images. With a simple call, you can set the images toFront or toBack features.
----------------
イメージを使ったサンプルをいくつ書いていると、イメージの「奥行き」を考慮したくなるときがあります。たとえば、 回転木馬 のサンプルの場合、すべてのイメージは、「奥行き」を持っています。ただ、この例の場合は、イメージ同士が重なりあうことがないので、Z 軸に関してプログラムを書く必要がありませんでした。もし、この回転木馬の例で、または、ほかのアプリケーションで、イメージが重なりあうようなものを作りたい場合には、Z 軸の位置を指定する必要があります。toFront または toBack 関数を使うだけで、簡単に指定できます。
In this example, I have taken 3 images and try to set the depth-ness of images on the event of Buttons.
------------
この例では、ボタンのイベントを使って、3つのイメージに「奥行き」を設定しています。

最初のイメージが上 2番目のイメージが上

3番目のイメージが上
Here is the code to set the Z-Order :
---------------
以下がコードになります。
package zorder;
import javafx.scene.Group;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.paint.Color;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.shape.Rectangle;
import javafx.scene.input.MouseEvent;
import javafx.ext.swing.SwingButton;
var im1 = ImageView {
x: 100
y: 100
image: Image {
url: "{__DIR__}im1.PNG"
}
opacity: 0.8
};
var im2 = ImageView {
x: 130
y: 130
image: Image {
url: "{__DIR__}im2.PNG"
}
opacity: 0.8
};
var im3 = ImageView {
x: 160
y: 160
image: Image {
url: "{__DIR__}im3.PNG"
}
opacity: 0.8
};
var gp = Group {
content:[
im1, im2,im3
]
}
Stage {
title: "Application title"
width: 400
height: 400
scene: Scene {
fill: Color.BLACK
content: [
gp,
SwingButton {
translateX: 10
translateY: 10
text: "Image 1"
action: function() {
im1.toFront();
}
}
SwingButton {
translateX: 90
translateY: 10
text: "Image 2"
action: function() {
im2.toFront();
}
}
SwingButton {
translateX: 170
translateY: 10
text: "Image 3"
action: function() {
im3.toFront();
}
}
]
}
}
Posted at 10:53午後 1 07, 2009 by kenji in JavaFX の素人 | 投稿されたコメント[2]
2008年 12月 26日 金曜日
JavaFX 日本語サイトがオープン!
JavaFX の日本語サイトが、オープンしました!
http://sdc.sun.co.jp/java/javafx/index.html
それほどコンテンツは多くないのですが、日本語版 core チュートリアル JavaFX Script プログラミング言語について と、日本語版 GUI チュートリアル JavaFX を使用した GUI アプリケーションの構築 は、初めて JavaFX を使おうと思っている方は、必見だと思います。是非、アクセスしてみてください!
Posted at 01:14午後 12 26, 2008 by kenji in JavaFX の素人 |
2008年 12月 25日 木曜日
JavaFX SDK 1.0.1 がリリースされました。
今更なんですが... JavaFX SDK 1.0.1 (アップデートリリース 1) がリリースされました。SDK のダウンロードページ からダウンロードできます。主なアップデートは以下の通りです。
- サイズの大きいビデオファイルの再生パフォーマンスの改善。
- HTTP リクエストによるリモートサーバーからの進行型再生機能の変更
- FLV と FXM ファイルの早送り機能の追加
詳細は、 こちら をご覧ください。
なお、現時点では、NetBeans plugin の update は、まだのようです。
Posted at 01:54午後 12 25, 2008 by kenji in JavaFX の素人 |
JavaFX: 今後について (Meet Jeet ブログより)
クライアントソフトウェアグループ副社長 Jeet Kaul のブログ から、JavaFX に関する FAQ が載っていたので翻訳しました。JavaFX の将来について書いてあるので、とても、興味深い内容になっていると思います。(原文は 2008年12月16日にかかれました)
また、Jeet からのコメントで、Martin Brehovsky が blog へのコメントとしていくつか修正をしてくれているそうなので、その部分も翻訳して載せておきました。
# 専門的な話も多く、もしかしたら誤訳があるかもしれません。。。
見つけたら是非教えてください。
I have been getting a lot of great feedback on JavaFX after the launch and obviously a lot of questions too. Since people don't have the ability to walk across the hallway to question Jai, our PM for JavaFX, and get questions answered; I will do that here. I loved Osvaldo's blog. It contains a great set of questions, so I will respond to them along with a few others that I have encountered.
------------------
JavaFX の発表後、たくさんのフィードバックと同時に、たくさんの質問が寄せられています。ですが、すべての人が、JavaFX のプログラムマネージャである Jai に直接質問をして、その回答を得られるわけではないので、このブログでいくつか回答したいと思います。 Osvaldo's blog には、とても興味深い質問がいくつもあったので、私自身が受けた質問をそれに加えて、回答していきたいと思います。
1. When will Sun publish a complete specification?
Sun is committed to open standards and open source, and specifications are coming soon. We'll be publishing the specifications for FXD, FXZ, FXM and the language spec for JavaFX Script shortly. We have already started working on a draft for the language reference guide for JavaFX Script.
---------------------------
1. JavaFX の完全な仕様を Sun はいつ発表するのでしょうか?
Sun は、JavaFX をオープンスタンダード、そして、オープンソースとしていくことを約束しており、FXD, FXZ, FXM および言語仕様はもうすぐ発表されると思います。JavaFX スクリプトの言語リファレンスガイドはすでに作成が始まっています。
2. Any plans for open source?
There are some dependencies on licensed code that cannot be open sourced. We are working towards decoupling the dependencies so that the non-proprietary portions can be open sourced. Currently the JavaFX compiler, Netbeans JavaFX plugin and Eclipse JavaFX plugin are already being developed in the open source. The scene graph is out in the open. We will put the core runtime out in the open over time.
--------------------------
2. オープンソース化については?
まだ、ライセンスの問題で、いくつかのオープンソースにできない部分があります。現在は、ライセンスに抵触しない部分を分離して、その部分をオープンソースにする作業を進めているところです。現時点では、JavaFX コンパイラ、NetBeans JavaFX プラグイン、そして、Exlipse JavaFX プラグインが既に、オープンソースとして開発されています。また、scene graph も同様にオープンになっています。コアランタイムもじきにオープンになるでしょう。
3. A detailed roadmap
We will be rolling out JavaFX releases fast. The mobile platform will be released by March. You will get to see JavaFX Mobile in action at the Mobile World Congress in February '09. The current Desktop release of JavaFX 1.0 already has a beta runtime for mobile. The mobile release will be for OTA deployments that will allow JavaFX applications to run on existing phones. Following the mobile release, a visual designer tool for JavaFX will be available in mid-2009. Better media support with streaming capabilities will also be added in this release. We will be releasing bug fix releases on a continual basis.
---------------------------
3. 詳細なロードマップについて
私たちはまず JavaFX のリリースを先にしました。モバイルプラットフォームは来年の3月にはリリースされるはずです。2月に実施される Mobile World Congress で詳細が明らかになると思います。現在の JavaFX 1.0 の Desktop release には、既にこのモバイル版のランタイムがバンドルされています。モバイルリリースは、JavaFX アプリケーションが、既存の携帯電話から実行できるための OTA 開発リリースになります。その後、2009 年の中ごろには、JavaFX のビジュアルデザイナーツールをリリースする予定です。このリリースには、ストリーミングをサポートする機能も追加されている予定です。bug fix リリースは、継続的に行われていきます。
4. Where is the public bugtrack?
Developers can currently file issues at http://javafx-jira.kenai.com/secure/Dashboard.jspa. We have linked this bug database from the downloads page at http://www.javafx.com.
--------------------------
4. 公開されているバグ管理ツールは?
開発者の方は、http://javafx-jira.kenai.com/secure/Dashboard.jspa からバグを登録することができます。このバグデータベースは、http://www.javafx.com のダウンロードページからもリンクされています。
5. Do you have plans to reduce the desktop FX runtime's dependency on Swing?
Yes we will be adding new UI controls and widgets that'll be based on the common profile of the JavaFX platform. This will remove dependency on Swing and allow the UI components to be used across all devices. We will, however, also provide a better integration for existing Swing applications separately.
-------------------------
5. FX ランタイムの Swing への依存性を減らす予定はありますか?
はい。JavaFX プラットフォームの共通プロファイルに基づいた、新しい UI コントローラと、ウェジットを追加する予定です。この機能は、Swing への依存性をなくし、すべてのデバイスを通して、利用することが可能になります。しかし、それと同時に、より良い Swing コンポーネントを提供していく予定でもあります。
6. Can you share more details about the FX Mobile platform?
We intend to support CLDC and CDC stacks. Ideally we would like people to build JavaFX Mobile applications on MSA subset to enable compelling solutions, but the JavaFX runtime has a hard requirement on mostly JSR135. At this point of time there are no plans to release a full stack with the OS. We might do that in the future though. Yes we intend to support a thin layer on existing JavaME stacks so existing partners can deploy JavaFX on the OS of their choice. There will be support on Windows Mobile.
----------------------
6. FX モバイルプラットフォームについて、より詳細な情報はありませんか?
CLDC と CDC スタックについてはサポートする予定です。理想的には、JavaFX モバイルアプリケーションを、より高いレベルのソリューションを提供できる、MSA サブセットで開発してほしいですが、JavaFX ランタイムには JSR135 と同等のハードウェアが必要になります。このため、現時点では、OS のフルスタックでのリリースは予定されておりません。しかし、将来的には実現したいと思います。現在のパートナーがどの OS 上でも、JavaFX を配備できるように、既存の javaME スタックの一部をサポートした形をとる予定です。Windows Mobile でもサポートされる予定です。
7. What's the reason to create a new vector graphics format, the FXD?
The FXD file format provides significant advantages such as preservation of layers when a graphic created in Photoshop or Illustrator is exported to FXZ format. And FXZ can handle vectors and rasters as well. This allows developers greater flexibility in manipulating the exported graphics and creating amazing new visual effects.
-------------------
7. なぜ新しいベクトルグラフィックフォーマット、FXD を作成したのですか?
FDX ファイルフォーマットは、グラフィックが Photoshop や Illustrator で作られていた場合に、とても有効な、たとえばレイヤーの保存などを FXZ フォーマットとしてエクスポートする形で提供してくれます。FXZ はベクター、ラスター処理も可能です。この機能は開発者に、エクスポートされたグラフィックを処理する際の自由度を提供し、新しい画期的なビジュアルエフェクトを作成することを可能にしてくれます。
8. Some people complained about ugly security dialogs
The security dialogs are critical in providing applications a secure runtime that allows deeper system access than other technologies. However we recognize the usability issues surrounding this model. Our goal is to make the Java browser plugin completely "invisible" while keeping the powerful security model of the Java browser plugin. Java SE 6u10 is a great step in this direction. Future releases of the Java runtime will further address these issues.
--------------------------------------
8. セキュリティダイアログの見栄えが良くなく不満があります。
ほかのテクノロジーに比べ、より高度なシステムアクセスを実現するセキュアランタイムをアプリケーションに提供することがセキュリティダイアログではもっとも重要です。同時に、このモデルはユーザビリティの問題を抱えていることは認識しています。最終目標は、Java ブラウザプラグインの強力なセキュリティモデルを維持しつつ、完全に、「見えない」Java ブラウザプラグインを作ることです。Java SE 6u10 はこの方向へのよい一歩となっています。将来のリリースでは、この問題についてさらに改善するつもりです。
9. When will the JRE CDS be enhanced to support non-RT libraries?
At a higher level we are working on fixing the startup time for JavaFX and Java simultaneously. One of the initiatives is around the work that Mark Reinhold is doing with OpenJDK 7. Stay posted - we are making big changes.
-----------------------------
9. いつ JRE CDS は、non-RT ライブラリをサポートするのでしょう?
概略的には、JavaFX と Java で試験的に変更を実施しているところです。ひとつの例として、Mark Reinhold が OpenJDK 7 で実施しているものがあります。今後にご期待ください - いろいろ改善中です。
10. Perspectives on performance?
We intend to continually improve performance. It is very high on the priority list. Our current focus is on JavaFX Mobile performance. The JRE provides a great foundation for this.
------------------------
10. パフォーマンス改善の見通しは?
継続的にパフォーマンスの改善は実施していきます。パフォーマンスは最重要事項の一つです。現在は、JavaFX モバイルのパフォーマンス改善に力を注いでいます。JRE がその基礎を提供しています。
11. Do you intend to support other codecs?
The On2 VP6 codec is our cross platform story for media. We also support native codecs. Over time we will expand the number of codecs supported. We are also following OMS closely.
----------------------
11. ほかのコーデックをサポートする予定は?
On2 VP6 コーデックがメディアのクロスプラットフォームサポートの中心です。ほかには、native コーデックもサポートしています。今後は、さまざまなコーデックをサポートする予定です。OMS もサポートする予定です。
12. Will there be Linux support?
Yes there will be Linux and OpenSolaris support. Check out Josh's blog for more detail.
---------------------
12. リナックスサポートは?
Linux や オープンソラリスもサポート予定です。詳細は Josh's blog をみてください。
One of the best places to get answers is the FAQ on javafx.com/faq.
-------------------------------
javafx.com/faq の FAQ もさまざまな「回答」があります。こちらも参照してください。
I'm the guy who came with the FXD/FXD idea and who's team is working on the JavaFX Production Suite. The main reason for creating FXD (and FXZ as compressed version with embedded assets) was we needed a mechanism which would map 1:1 to the FX scene graph APIs. Because of that we couldn't really use SVG directly, as not all elements we have in FX are present in SVG (e.g. advanced filter effects, ) and also not all SVG features can be easily represented in FX (e.g. defs/use mechanism).
--------------
私は、FXD/FXZ の開発をしているもので、JavaFX Production Suite のチームに属しています。FXD (と、アセットを組み込んだ圧縮バージョンである FXZ) を開発したもっとも大きな理由は、JavaFX scene graph API と一対一で対応するメカニズムが必要だったからです。JavaFX のすべての要素を、SVG で表現することができず (たとえば、advanced filter effect など)、また、すべての SVG の機能を JavaFX で簡単に表現することもできなかったので (たとえば、defs/use メカニズム)、SVG を直接利用するすることができませんでした。
Furthermore we are planning to enhance the format over the time as the FX platform evolves - new scene graph elements are coming, high level components (UI controls) are coming, maybe 3D scene graph at some point, etc .... In the case we would be using SVG, we have to follow the standard and all advanced features coming from FX would have to exist in a different namespace and all tools working directly with SVG would obviously ignore them. Not exactly the best solution and definitely not scalable.
---------------------
さらに言うと、JavaFX プラットフォームの今後のリリースで、フォーマットの拡張も検討しています - 新しい scene graph 要素の追加、上位レベルのコンポーネント (UI controls) の追加、または、3D scene graph などです。もし、SVG を使っているなら、標準に準拠し、すべての JavaFX の拡張機能は、別の名前空間に存在しなくてはなりません。また、すべての SVG を直接操作する tool は、明らかにこれらを無視しています。SVG を使うことは必ずしも最良の方法ではないし、スケーラブルではありません。
Also FXD has been designed to always map 1:1 to the FX classes. With SVG or other formats it would be nearly impossible to achieve the same (e.g. group is 'g' in SVG would you like to use class 'g' in FX - I'm not sure about that.).
---------------------
FXD は、常に JavaFX クラスと一対一の対応をします。SVG や他のフォーマットでは、これはほとんど不可能です。(たとえば、SVG では、グループは、 'g' ですが、JavaFX では、'g' クラスを使うこともできます - そういう要求があるかはわかりませんが.)
And finally - FXD/FXZ has been designed as a design-time format. For the time being it is being used as the runtime format as well, but in the future we might introduce a binary runtime format, which would be a way more efficient than the design time. For you developers nothing will be changed, as you will always work with FXD/FXZ and the SDK/tools will be responsible for translating it into a binary form, so the the runtime will be able to read the optimized binary form and the runtime should be able to read that in a way more efficient way (this is important especially for smaller devices such as mobile phones or other embedded devices).
-----------------
最後に - FXD/FXZ はデザインタイムフォーマットとして設計されています。当面は、ランタイムフォーマットとしても使用されますが、将来的には、デザインタイムよりもっと効率的な、ランタイムフォーマットを提供する予定です。開発者の側からはなにも変わりませんが、FXD/FXZ や、SDK/ツール 側が、最適化されたバイナリをランタイムを使用できるような、バイナリフォームを生成し、より効率的な実行を目指しています (これは、携帯電話や、組み込みデバイスなど、小さなデバイスに特に重要です)
Let me know if this explained the reasons why FXD and not SVG or any other existing file format. I'll try to post this also to the official javafx blog.
-----------------
SVG や他のフォーマットではなく、FXD を作り出した理由の説明になっていればと思います。javafx blog にもこの話を投稿しておきます。
Posted at 01:22午後 12 25, 2008 by kenji in JavaFX の素人 |