« [技術ネタ] Java JOGL(OpenGL)でのエラーについて(覚書) | トップページ | [Live2D] Modeler 1.0 beta1リリースしました。 »

2009年1月23日 (金)

[技術ネタ] Java でグラフィックスする場合のお勧め本

また、技術ネタで失礼いたしますsnow

最近購入したJavaのグラフィックス「Filthy Rich Clients」の日本語版が中々面白かったのでご紹介しておきます。

~・~・~

この本、結構前に英語版が出ていて、必要そうな項目だけ拾い読みしていたのですが、昨年11月に日本語版が登場し、立ち読みしてみたところ細かい記述に「へぇ」という部分が多く、日本語版も購入(英語で全文読む英語力と体力があれば必要なかったんですがcrying)。

Javaでグラフィックスをやるという酔狂な方は必携の一冊。

(ちなみに、Javaでグラフィックスをやる魅力は何と言ってもMacユーザさんに喜んでもらえることかと。Live2Dのユーザさんは推定3割ぐらいMacのようです。)

滅多に触れられていないSwingの描画やイベント処理、スレッドに関する重要なことや、パフォーマンスに関する注意事項が盛りだくさんです。もちろん、グラッフィクスについても基礎から応用(床の反射表現や、Swingのアニメーション化など)までたっぷり600ページも記載されています。

~・~・~

例えば、AWT/Swingの処理は単一のEDT(イベント処理スレッド)で処理しないといけない約束なのは割とどこにでも書いてあるのですが、下記のように main() でSwing記述も本当は許されないのだとか。

ちなみに、WikipediaのSwing の項目ですら下記のように書いています。

import javax.swing.JFrame;
import javax.swing.JLabel;

public class HelloWorld {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(new JLabel("Hello, world!"));
        frame.setLocationRelativeTo(null);
        frame.pack();
        frame.setVisible(true);
    }
}

「Filthy Rich Clients」によると、下記のように書くのが正解なのだそうです。

public static void main( String[] arg){
    SwingUtilities.invokeLater( new Runnable(){
        public void run(){
            JFrame frame = new JFrame() ;
            ...
        }
    }
}

初心者だったら、何が何だか…これだとSwingの普及に益々歯止めが掛かりそうなんですがrain 

こういった細かい原理と、高速にグラフィックス処理するためのTipsなどが盛りだくさんですので、ますます酔狂になりたい方は是非。


英語版と日本語版ソックリですのでくれぐれもご注意ください(笑)
当社の本棚にはこの二冊が仲良く並んでます。。

1月 23, 2009 | このエントリーを含むはてなブックマーク

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/130974/43827590

この記事へのトラックバック一覧です: [技術ネタ] Java でグラフィックスする場合のお勧め本:

コメント

いや~貴重なノウハウを惜しみなく公開されて…。
いよっ !! 太っ腹 !!

ま、基本的に Java はアレですが、"単一のEDT"ってのはこういう事を言うんですかね…。
正直、"えっ、こんな事して良かったの??"ってのが本音です。

面白そうなんで応用してみたい気もするんですけど…、本の方は かなりお高いんで…。
アフィの方は、いずれ…。その内に…。

ははは。

投稿: awa | 2009/01/25 18:55:23

まいどですhappy01

>いや~貴重なノウハウを惜しみなく公開されて…。

わ、私のノウハウじゃないので、惜しみようがないですchick

>いよっ !! 太っ腹 !!

それは別の意味で正しいです
・・最近とくに(T_T)

投稿: なかじょう | 2009/01/26 21:08:26

コメントを書く