読書会(Filthy Rich Clients)第4回議事録

[ 戻る ]


Java読書会 「Filthy Rich Clients」を読む回(第4回)議事録

日時 : 2009/7/18(土) 10:00-17:00
場所 : 高津市民館 第5会議室
出席者:松永、石黒、高橋(徹)、壁谷、高橋(智)、遠藤、吉本、村山、今井(書記)
範囲:第7章 グラデーション マルチストップ線形グラデーション (p.191)
   〜 第12章 アニメーションの基本 基本的な概念 (p.281)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
第7章 グラデーション

p.192
- LinearGradientPaintはJSE 6でしか使えないが、ソースをコピーすればJSE 5でも
 使えるのか?
 - SwingXの拡張部品を作っているプロジェクトから持ってきた部品が結構Javaに取り
  こまれている。LinearGradientPaintがどうかはわからないが、そうであれば、もっ   てくれば良い。
 - Apache SVGツールキット(Batik)にLinearGradientPaintクラスがある。
  (p.193下 ヒントより)

p.193
- GradientPaint()を使って、setPaint()を二度呼ぶ方法よりも、LinerGradientPaint()
 の法が早く動くのは、内部的に単にsetPaint()を二回呼んでいるのではないということ
 だろう。

p.194
- Macのウィンドウの左上ボタンは、図7-9の球体の効果を使って作っているのだろうか?
- Webページの箇条書きによく使用されている。

p.197
- 脚注*1 はどういう意味だろうか?

p.200
- ヒントに「Mac OS Xでは...4倍しか向上しません」とあるが、なぜ?
 [宿題]試せる人は試してみよう
- Linuxでははやくなるのだろうか?
 - OpenGLが使えれば試せるはず
 - Xサーバの設定を、グラフィックチップにあったものにすれば早くなる?


第8章 画像処理

p.203
- GIMPって何て発音してます?
 - (帰宅後調べました。http://e-words.jp/w/GIMP.html によると、「ギンプ」の
  ようです。(今井))

p.206 l.4 誤植
パフォーマンスを低下を防ぐことができます。

パフォーマンスの低下を防ぐことができます。

p.212 上部RGBの計算式の最後の項 誤植(原書も同様、errataにも無い)
+ 255*(8/9)

= 255*(8/9)

p.212 l.下3 誤植
どの値が中心として使われるかが分かりにくくしています。

どの値が中心として使われるかを分かりにくくしています。

p.209〜
- Convolveってどういう意味?
 - 巻き込む、畳み込む

p.213 コード
- sharpenの真ん中の値(5.0f)を4.0fにすると、隣接ピクセルと変化の少ないところは
 暗く、多いところは明るくなり輪郭(エッジ)抽出した画像になる。
 それに元画像の値を足している(1.0f増やして5.0fにしている)ので、元画像の輪郭が
 強調されてシャープな画像になる。

p.216
- ペイントソフトにあるガンマ補正もこのようにテーブルを作って処理しているのだろ
 うか?
- ShortLookupTableのコンストラクタは、第二引数がshort[]のものとshort[][]のものが
 ある。
 全バンド同じテーブルを使うときはshort[]を、バンドごとに異なったテーブルを使う
 時は、short[][]を使う。
 - APIを見ても分かりにくい。

p.224
- コードのforループ中、int a には、右シフトしていない値が入っているので、ループ
 最後で a << 24 するのはおかしい。(原書も同じ)
  - α値が0でたまたまうまく動いたのか?
  - ダウンロードしたサンプルコードでは、mixColorという識別子が、メソッド名と
   フィールド名で二重に使われているところなどを含め、ここに書かれているコード
   とまったく違うコードになっている。

p.225
- 「注意」にある、「表引き用配列」は、原書では lookup arrays


第9章 ガラスペイン

p.233
- コード中に図9-3のバーの背景の描画がない。
 - サンプルコードには入っている。

p.238
- コード最下行、右24シフトせずに0xFF000000とマスクするだけで良いのでは?
 - 符号ビットがたっていた時に負値になってしまうのでまずい。
 - もともとは正の値だし、「アルファチャネルが0より大きかったら...」なので、
  マスクだけして「アルファチャネルが0ではなかったら...」でも良いのにね。

p.239 上部コード
- この条件はその前のifの条件と同じなので、単にreturn false;で良いのではないか。
 前のコード例のコピペ、修正し忘れ?
 (厳密には、inImageX >= 0 は、x >= imageX だから、'='が含まれるか含まれないかの
 違いはありますね。(今井))


第10章 階層化ペイン

p.243
- これは、部品が(入力フィールドから)はみ出しているときに有効なテクニックだろう。

p.245
- add(Component, Object)と、add(Component, int)で異なる意味であれば、 あまり
 良いメソッドネーミングではないね。
 - 以前はこれで問題はなかった。オートボクシング機能により拙くなった。

p.246 l.下6 誤植
部品redはフレームの一番上にあり、

部品redはフレームの一番下にあり、

p.249 l.4 誤植
StackLayoutを用いて部品にコンテナを追加するときに、

StackLayoutを用いて部品をコンテナに追加するときに、

p.250
- LayoutManager2 というネーミング...
 - LayoutManagerのサブインタフェースで、メソッドがいくつか追加されている。
 - Eclipseにはこのパターンのネーミングが多い。4とか5もあったと思う。

p.251 ヒント l.下2 誤植
ガラスペインペインの代わりに

ガラスペインの代わりに


第11章 再描画マネージャ

p.262
- contentGraphicsフィールドの方はGraphicsにしておいて、メソッド内でGraphics2D型
 変数g2に代入して使用しているのはなぜだろう。
 - サンプルコードではフィールドの型もGraphics2Dになっている。
 - g2に代入して使っているのは、単にコードを見やすくするため?
- g2.setComposite(), g2.setColor(), g2.setFont()は毎回必要だろうか。
 - 毎回必要でないならif内でcontentBuffer.createGraphics()をしたときに
  しておけば良いはず。


第III部 アニメーション

第12章 アニメーションの基本

p.272 l.5 誤植
中でつながり滑らか流れになります。

中でつながり滑らかな流れになります。


以上
次回p.281「時間計測(とプラットフォームの計時ユーティリティ)」から


[ 戻る ]