NetBeans上にJavaFXの開発環境をインストールしたので、JavaFXらしい動きのあるアプリケーションを作って動かしてみることにしました。
と言っても、JavaFXPad用に書かれた時計のアプリケーションを、Frameウィンドウ上で動くように、ちょっと手を入れただけです(Javaと異なり、このような例ではファイル名として任意のものを指定できます)。変更したのは、次の2点です。
1.TimerクラスのインスタンスをFrame内に直接生成する。
2.Frameウィンドウを閉じたときにJVMが停止するように、onCloseオペレーションを追加する。
秒針が滑らかに動くのを見ると、ちょっと感動ものです。参考までに、コードを載せておきます(適当にインデントを追加してください)。オリジナルと比べると変更箇所が分かります。
import javafx.ui.*;
import javafx.ui.canvas.*;
import java.util.Date;
import java.lang.Math;
import java.lang.System;
public class Timer {
private attribute elapsed: Number;
public attribute minutes: Number;
public attribute seconds: Number;
public attribute hours: Number;
public attribute running: Boolean;
}
attribute Timer.elapsed = bind if running
then [1..20] dur 1000 linear while running continue if true
else 0;
trigger on Timer.elapsed = value {
var now = new Date();
minutes = now.getMinutes();
seconds = now.getSeconds() + (now.getTime() % 1000) / 1000;
hours = now.getHours();
}
Frame {
var t = Timer {running:true}
onClose: operation() {System.exit(0);}
title: "JavaFX 時計"
height: 225
width: 215
content:
Canvas {
content:
Group {
var font = new Font("Dialog", "PLAIN", 15)
var secs = bind t.seconds
var mins = bind t.minutes + secs / 60
var hrs = bind t.hours + mins / 60
content:
[Rect {
height: 225
width: 225
fill: white
},
Circle {cx: 100, cy: 100, radius: 80, fill: white, stroke: black, strokeWidth: 1},
Group {
transform: translate(100, 100)
content: foreach (i in [1..12])
Text {
var radians = Math.toRadians(30 * i - 90)
transform: [translate((70 * Math.cos(radians)), (70 * Math.sin(radians)))]
content: "{i}"
valign: MIDDLE
halign: CENTER
}
},
Group {
transform: translate(100, 100)
var hourHand =
Line {x1: 0, y1: 0, x2: 0, y2: -35,
strokeWidth: 4, stroke: black
transform: bind rotate((hrs * 30), 0, 0)
}
var minuteHand =
Line {x1: 0, y1: 0, x2: 0, y2: -55,
strokeWidth: 2, stroke: blue,
transform: bind rotate((mins * 6), 0, 0)
}
var secondHand =
Line {x1: 0, y1: 0, x2: 0, y2: -75,
strokeWidth: 1, stroke: red,
transform: bind rotate((t.seconds * 6), 0, 0)
}
content: [hourHand, minuteHand, secondHand]
},
Circle {cx: 100, cy: 100, radius: 3, fill: black, stroke: black }]
}
}
visible: true
}
2007年11月28日水曜日
2007年11月27日火曜日
JavaFXコンパイラが実用になると構文が変わる
現在のJavaFXファイルの実行はインタプリタ方式ですが、JavaFXコンパイラの開発が鋭意勧められています。
コンパイラが実用になると、それに伴ってJavaFXの構文も多少変わるようです。まだ検討中のものあるようでその全貌は分かりませんが、少なくとも私には、よりシンプルな記述が可能になる方向に変わろうとしているように思えます。
どのように変わろうとしているのか興味がおありの方は、Planet JFXのページ、Weaverさんのブログをご覧ください。
コンパイラが実用になると、それに伴ってJavaFXの構文も多少変わるようです。まだ検討中のものあるようでその全貌は分かりませんが、少なくとも私には、よりシンプルな記述が可能になる方向に変わろうとしているように思えます。
どのように変わろうとしているのか興味がおありの方は、Planet JFXのページ、Weaverさんのブログをご覧ください。
2007年11月26日月曜日
NetBeansへのJavaFX開発環境のインストール
「次回は・・・」と言いながら、1回間があいてしまいました。しかも、今回はその内のIDE(NetBeans)へのJavaFX開発環境のインストールの分だけです(もう予告するのは止めにしよう)。
JavaFXPadは、いかがだったでしょうか。日本語も、特に何の設定もすることなく表示できたことと思います。ただし、JavaFXPadを起動したときに表示される「JavaFX」の文字ように、フォントとして日本語の字体を含まないもの(この例では「faceName: 'Verdana'」)を設定していると、日本語の文字が四角い枠で表示されてしまいます。その場合は、日本語の字体を含むフォントを指定する(たとえば「faceName: 'Sans-Selif'」と記述する)か、フォントまたはフォント名の指定そのもの(この例では「faceName: 'Verdana',」の部分)を削除してしまえば、日本語が表示されます。
JavaFXの構文を学習したら、OpenJFXホームページに紹介されているJavaFX Script 2D Graphics Tutorialにアクセスして、2Dグラフィックスのチュートリアルをダウンロードして調べてみると面白いです。図形のアフィン変換も簡単に指定できるので、durオペレータと組み合わせると、ちょっとした動的アプリケーションならすぐに作れます。ちなみにdurオペレータの構文については、白石さんの日記に詳しく説明されていています。
前説が長くなりましたが、IDEへのJavaFX開発環境のインストールについては、OpenJFXホームページの「ダウンロード」に、手順を記したページへのリンクが載っています。ちなみに、私はNetBeans IDE 5.5 用 JavaFX Script プラグイン: ダウンロードとインストレーション手順に従って、NetBeans 5.5へプラグインをインストールして使っています(プラットフォームは、Windows XP SP2、JDK 1.5.0_11です)。
NetBeansでのJavaFXプログラムの作成と実行方法については、OpenJFXホームページに載っているJavaFX Script 言語 はじめの一歩が参考になります。GUIコンポーネントの使い方については、深く学ぼう JavaFX Script 言語にひととおり紹介されています。今まで敬遠していたレイアウトマネジャも、比較的容易に利用できるのがうれしいです(これから主流になるであろう携帯端末上で動作するアプリケーションを構築することを考えると、レイアウトマネジャの利用は必須だと思っていますので)。
また、クライアント/サーバアプリケーションの簡単な例については、Learning JavaFX Script, Part 3: Client-Server Communication With JAX-WSが参考になります(人の褌で相撲を取っているので、「参考になります」ばかり)。
JavaFXPadは、いかがだったでしょうか。日本語も、特に何の設定もすることなく表示できたことと思います。ただし、JavaFXPadを起動したときに表示される「JavaFX」の文字ように、フォントとして日本語の字体を含まないもの(この例では「faceName: 'Verdana'」)を設定していると、日本語の文字が四角い枠で表示されてしまいます。その場合は、日本語の字体を含むフォントを指定する(たとえば「faceName: 'Sans-Selif'」と記述する)か、フォントまたはフォント名の指定そのもの(この例では「faceName: 'Verdana',」の部分)を削除してしまえば、日本語が表示されます。
JavaFXの構文を学習したら、OpenJFXホームページに紹介されているJavaFX Script 2D Graphics Tutorialにアクセスして、2Dグラフィックスのチュートリアルをダウンロードして調べてみると面白いです。図形のアフィン変換も簡単に指定できるので、durオペレータと組み合わせると、ちょっとした動的アプリケーションならすぐに作れます。ちなみにdurオペレータの構文については、白石さんの日記に詳しく説明されていています。
前説が長くなりましたが、IDEへのJavaFX開発環境のインストールについては、OpenJFXホームページの「ダウンロード」に、手順を記したページへのリンクが載っています。ちなみに、私はNetBeans IDE 5.5 用 JavaFX Script プラグイン: ダウンロードとインストレーション手順に従って、NetBeans 5.5へプラグインをインストールして使っています(プラットフォームは、Windows XP SP2、JDK 1.5.0_11です)。
NetBeansでのJavaFXプログラムの作成と実行方法については、OpenJFXホームページに載っているJavaFX Script 言語 はじめの一歩が参考になります。GUIコンポーネントの使い方については、深く学ぼう JavaFX Script 言語にひととおり紹介されています。今まで敬遠していたレイアウトマネジャも、比較的容易に利用できるのがうれしいです(これから主流になるであろう携帯端末上で動作するアプリケーションを構築することを考えると、レイアウトマネジャの利用は必須だと思っていますので)。
また、クライアント/サーバアプリケーションの簡単な例については、Learning JavaFX Script, Part 3: Client-Server Communication With JAX-WSが参考になります(人の褌で相撲を取っているので、「参考になります」ばかり)。
2007年11月25日日曜日
JavaFXのコンパイラがより簡単に入手可能
これまでは、ソースコードを入手して自分で構築しないと使えなかったJavaFXコンパイラですが、構築済みのものをダウンロードして使えるようになったようです(Jim Weaverさんのブログ、Planet JFXのページを参照してください)。
私自身は、まだ試していません。すぐに利用できるようになるという、次の省スペース版が出たら試してみようかと思っています。
私自身は、まだ試していません。すぐに利用できるようになるという、次の省スペース版が出たら試してみようかと思っています。
2007年11月24日土曜日
JavaFXことはじめ
最近(といっても11月に入ってからですが)、JavaFXについて調べています。
JavaFX言語の開発実行環境は、手軽に利用できるものが用意されているので、それをダウンロードして、最新のプログラミング言語(いわゆるRIAというもの)を試してみることにしました。Javaの知識が多少なりともあるため取っつきやすく、表現力豊かなデスクトップアプリケーションが簡単に作成できるので、ちょっと楽しくなりました。
まずは、SunのJavaFX紹介ページにアクセスして、JavaFX Scriptを入手しました。このページで紹介されているのは、JavaFXの2Dグラフィックスのチュートリアルでした。最初は、JavaFX言語の構文が分からずたいしたことはできませんでしたが、それでも、モーフィングのデモは期待にたがわないものであることを予感させてくれました。
次に、紹介ページに記載されているOpenJFXプロジェクトのページにアクセスし、「デモ」の中から JavaFX Script JavaFXPad Demoをクリックして、JavaFXPadを入手しました。JavaFXPadを利用すると、コーディングするそばからプログラミングの結果が見られるので、ちょっとJavaFXを試してみるという用途には最適です。JavaFXPadを使って、OpenJFXプロジェクトのページに載っているJavaFX Script プログラミング言語 リファレンスや、稚内北星学園大学のJavaFX 2007などでJavaFX言語の基礎を習得することにしました(私はこの順番で読んだのですが、最初にJavaFX 2007の方を読んだ方が分かりやすかったかなと、思います)。
OpenJFXプロジェクトのページには、このほかにもいろいろと情報が載っており、それらのリンク(wiki、メーリングリスト、ブログなど)をたどるとリアルタイムで新しい言語の誕生に触れることができるので、毎日わくわくしながら読んでいます。
次回は、IDE(NetBeans)上への開発環境の構築と、コマンドラインからのJavaFXインタプリタ起動についてお話したいと思っています。
JavaFX言語の開発実行環境は、手軽に利用できるものが用意されているので、それをダウンロードして、最新のプログラミング言語(いわゆるRIAというもの)を試してみることにしました。Javaの知識が多少なりともあるため取っつきやすく、表現力豊かなデスクトップアプリケーションが簡単に作成できるので、ちょっと楽しくなりました。
まずは、SunのJavaFX紹介ページにアクセスして、JavaFX Scriptを入手しました。このページで紹介されているのは、JavaFXの2Dグラフィックスのチュートリアルでした。最初は、JavaFX言語の構文が分からずたいしたことはできませんでしたが、それでも、モーフィングのデモは期待にたがわないものであることを予感させてくれました。
次に、紹介ページに記載されているOpenJFXプロジェクトのページにアクセスし、「デモ」の中から JavaFX Script JavaFXPad Demoをクリックして、JavaFXPadを入手しました。JavaFXPadを利用すると、コーディングするそばからプログラミングの結果が見られるので、ちょっとJavaFXを試してみるという用途には最適です。JavaFXPadを使って、OpenJFXプロジェクトのページに載っているJavaFX Script プログラミング言語 リファレンスや、稚内北星学園大学のJavaFX 2007などでJavaFX言語の基礎を習得することにしました(私はこの順番で読んだのですが、最初にJavaFX 2007の方を読んだ方が分かりやすかったかなと、思います)。
OpenJFXプロジェクトのページには、このほかにもいろいろと情報が載っており、それらのリンク(wiki、メーリングリスト、ブログなど)をたどるとリアルタイムで新しい言語の誕生に触れることができるので、毎日わくわくしながら読んでいます。
次回は、IDE(NetBeans)上への開発環境の構築と、コマンドラインからのJavaFXインタプリタ起動についてお話したいと思っています。
登録:
コメント (Atom)