JavaFXをマスターしよう:より深いJavaFXの世界へ
沖林正紀
2007/08/06 12:33
前2回で基本的な構文を紹介した。これらを踏まえて、本稿の最後となる今回は、より深いJavaFXの世界を堪能しよう。Javaにはないさまざまな構文や演算子を知って、更なる高みを目指そうではないか。
insert, deleteはトリガーと組み合わせることもできる。これにより、配列に要素が追加/削除されたときの処理を別ブロックで記述することができる。リスト4-7は買い物カートに商品を入れたり、取り消したりする操作を行う際に、カート内の商品の合計金額を計算するなどに応用した例だが、ほかにもさまざまな利用例が考えられるだろう。
リスト4-7 カートに購入する商品を入れて合計を計算
// カート
class Cart {
attribute tempTotal : Number;
attribute items : Item*;
}
// 商品
class Item {
attribute name : String;
attribute price : Number;
function toString() : String;
}
function Item.toString() : String {
return "{name} {price format as <<###,###>>}円";
}
// トリガー(合計金額の計算と記録)
trigger on insert item into Cart.items {
tempTotal += item.price;
println( "購入 : {item.toString()} | 合計 {tempTotal format as <<###,###>>}円" );
}
trigger on delete item from Cart.items {
tempTotal -= item.price;
println( "取消 : {item.toString()} | 合計 {tempTotal format as <<###,###>>}円" );
}
trigger on Cart.items[old] = value {
tempTotal = tempTotal + value.price - old.price;
println( "変更前 : {old.toString()}" );
println( "変更後 : {value.toString()} | 合計 {tempTotal format as <<###,###>>}円" );
}
// カートに商品を入れてみる
var items = [
// ..... Itemの配列 .....
];
var c = new <<Cart>>();
insert items[0] into c.items;
insert items[2] into c.items;
delete c.items[1];
c.items[0] = items[1];
insert items[3] into c.items;
実行例
購入 : 音楽プレーヤー 15,000円 | 合計 15,000円
購入 : メモリーカード 5,000円 | 合計 20,000円
取消 : メモリーカード 5,000円 | 合計 15,000円
変更前 : 音楽プレーヤー 15,000円
変更後 : ワンセグチューナー 10,000円 | 合計 10,000円
購入 : USBメモリ 3,000円 | 合計 13,000円
4回にわたって説明したとおり、JavaFXはJavaにはないさまざまな構文や演算子が揃っており、Javaとは一味違ったプログラミングが楽しめる。まだ説明しきれていない部分があるのは残念だが、詳細はJavaFXのリファレンスを参照していただきたい。
また、JavaFXコンポーネントのソースコード(%JFX_HOME%\trunk\src\javafx以下の*.fxファイル)には、さまざまなテクニックが盛り込まれているので、こちらも参考にして、真のJavaFXマスターを目指していただきたい。
- 0人の推薦記事
- 0人がクリップ
-
ソーシャルブックマーク(-)
- トラックバック(0)
- 特集: JavaFXをマスターしよう (5件)
- 今日のトップ記事
- 昨日
- 2日前
- 5日前
- 6日前
- 7日前
- ホワイトペーパー
- 話題のタグ
Leopard
iPhone 3G
iPod touch
Webアプリケーション開発
Webサービス
JavaScript
Linux
プログラミング言語
Flash
Adobe
Apache
HTML
iPhone
仮想化
Database
Python
オープンソース
ブラウザ
脆弱性
PHP
Firefox 3
CSS
Internet Explorer
Mozilla
リファレンス
Off Topic
Firefox
Webデザイン
XML
入門
server
Java
Safari
Windows
モバイル
Tips
仮想化ソフトウェア
Apple
Mac OS X
ソフトウェア開発
プロジェクト管理
小技
XHTML
RIA
開発環境
Google
Ajax
SOA
携帯電話機
データベース
話題のタグを見る »
mixiサービス企画部長に聞く、「プラットフォームを開放する理由」
iPhoneのPush Notification Serviceでなにが起こるか
iPhone 3Gはメールにファイルを添付できないの?
発射台での度胸試し--J・L・ガセー氏が見た「MobileMe」の問題点
Firefox 3.1で強化されるHTML 5対応--Canvas Text APIを検証
つなげ! 速く、美しく、正確に--光ケーブル工事の技能を競う全国大会が開催
あなたのパワポ資料が近未来的に:MSがプラグイン公開
無料の「Oracle Database XE」で高速バッチ処理:活用のポイント
Rubyでどう書く?:RubyCocoa+Core Animationでお手軽アニメーション
なつかしのHTMLタグ「marquee」--CSS 3のマーキーを検証してみる
子どもに学ばせるとよい言語とは?
ZDNet Japan ホスティング特集
Techno Exchange
セキュリティ対策レベルテスト公開!
仮想化環境で求められるストレージの要件
ZDNet Japan Green IT
APC SOLUTIONS FORUM 2008をレポート
DELLが掲げる「新・仮想化アセスメントサービス」