良くできていて使いやすいんですが、はまった箇所があるのでコツをいくつか。
仕事の話じゃないからここに書いちゃう。
(1) レイアウト
レイアウトは GridLayout が基本。Eclipse で Visual Editor を使うと、
レイアウトインターフェースを使って大変直感的に配置できる。
composite と group を惜しげもなく使うのがコツ。
また、一度作った control は他の composite に Drag&Drop では再配置できない時があるが、
ソースで createComposite() へ cut & paste して親controlを書き換えれば大丈夫。
Visual Editor がきちんと reverse parse してくれます。
(2) TreeItem へのアクセスパス
Tree から TreeItem へのアクセスパスが、画面に表示されている先頭のものだけ。
TreeItem --> 次(兄弟)のTreeItem というアクセスパスが用意されていないため、
画面に表示されている TreeItem すべてに対する処理、というものがそのままでは書けない。
なので、自分で TreeItem に対する線形リンクとアクセスマップを構成した。
(3) 描画のバッファリング
描画はダブルバッファリングしないとちらつく。
ダブルバッファリングはそのままでは用意されていないが、基本的に自分で制御すべき。
なぜなら、やらなくていいことはやらない方がいいから。
例えば、サイズが変化していなければ gc や BufferedImage は描画の度に
再作成するべきではない。逆に、サイズが変わったのであれば、dispose() --> create() しないとダメ。
変化ないのであれば、真っ白な Rectangle などの初期イメージを描画してあげれば十分。
(4) Color オブジェクト
Colorオブジェクトはなぜか静的であり、一度作ると色を変えられない。
setRGB() できればいいのに。
色設定の度に dispose() --> create() していてはたまらないので、
Colorオブジェクトをキャッシュしておく PoolFactory を作った。
(5) Menu
Menuの階層構造の作成がわかりにくかった。
Menu -> MenuItem -> MenuItem -> .... ではなくて
Menu -> MenuItem -> Menu -> MenuItem -> ... という構造となる。
canvas への描画が速い!
まだあるけど、とりあえず、以上
12:30:45 - 技術
--- コメント 1件 [ 全文表示 ] ---
- rina : なんかむずかしいこと書いてあって・・・・。(^_^.)