■ SWT 最強ノウハウ集 Vol 4
◇ 目次
第1章 Points / Rectangle ■ Point クラス Point のコンストラクト ■ Rectangle クラス Rectangle の有用なメソッド rectangle 内に特定の座標が含まれるか判定 rectangle とrectangle が交差しているか判定 2つのrectangle を含む最小のrectangle を取得 第2章 GC ■ GC クラス GC のコンストラクト GC のdispose (破棄) Paint イベントによる描写 Display上とCanvas上でGCを使用してみる ■ 線や図形の描写 線を描く 長方形や惰円を描く ■ 線の属性を変更する 線の色を変更する 線の太さを変更する 線の種類を変更する 線の種類を独自に作成して設定する 線の端をキャップする Polygon での線の結合スタイルを変更する ■ Advanced graphics subsystem (高性能グラフィックスサブシステム)の使用 高性能グラフィックスサブシステムが使用可能かどうかチェック ■ LineAttributes クラスを使用して線の属性を設定 LineAttributes のコンストラクト GCにLineAttributes のインスタンスをセットする GCでLineAttributes を使用したサンプル ■ 線のぎざぎざをなくす(Antialias) ■ フォーカス表示の描写 ■ 塗りつぶし図形 線と塗りつぶしの図形を描く Polygon の図形を塗りつぶす Polygon の塗りつぶしのルール ■ XOR ■ Rectangle のグラデーション より高度なグラデーション ■ 透明度の調整(Alpha) ■ 複雑な図形を描く サンプル 1 サンプル 2 ■ 点を描く ランダムな点でスプレーを描く ■ 描写のクリア ■ その他 第3章 Pattern ■ Pattern とは? ■ 図形の背景や枠線をテクスチャにする 図形の背景をテクスチャにする 図形の枠線をテクスチャにする ■ 文字をテクスチャ(Pattern)で描く ■ Pattern をGCにセットさせるときの注意点 サンプル 1 サンプル 2 ■ 図形の背景や枠線を線形のグラデーションにする 図形の背景をグラデーションで塗りつぶす(透過性 なし) 図形の枠線をグラデーションで描く(透過性 なし) 図形の背景をグラデーションで塗りつぶす(透過性 あり) 図形の枠線をグラデーションで描く(透過性 あり) ■ 図形の背景や枠線を円形のグラデーションにする ■ 3色以上でのグラデーション 複数の色のグラデーションで虹色を描く ■ 文字をグラデーション(Pattern)で描く ■ 既存イメージをPatternのグラデーションでブレンディング サンプル 1 サンプル 2 第4章 Path ■ Path とは? PathとGCとの描写の違い ■ Pathで直線や円、矩形を描く path で直線を描く 続けて直線を描く 続けないで直線を描く 連続した直線を描き、その後pathをクローズする 連続直線の太さや種類、色を変更する クローズした連続直線をの内部を塗りつぶす Pathを使用してマウスで直線やポリゴンを描くサンプル 線のぎざぎざをなくす 長方形や惰円を描く 長方形や惰円を描く ■ Path で曲線を描く ベジエ曲線を描く ベジエ曲線を描くサンプル 2次のスプライン曲線を描く ■ Path で点を描く ■ Path で丸みの帯びた長方形や半径指定の同心円を描く ■ Path で文字を描く ■ path のデータの境界(bounds)を取得する ■ ある座標がpath が表現する図形内に含まれるかを判定 ■ pathに別のpathのデータを追加する 第5章 Transform ■ Transform とは? ■ 図形や文字を移動する ■ 図形や文字を拡大 / 縮小する 原点基準のスケーリング(拡大 / 縮小) 任意の点基準のスケーリング(拡大 / 縮小) ■ 図形や文字を回転する 原点基準の回転(rotation) 任意の点基準の回転(rotation) ■ 図形や文字をシアーする ■ transform をデフォルトにもどす transform がデフォルトかどうか調べる transform をデフォルトにリセットする ■ マトリックスを使用した図形のさまざまな変形 マトリックスを指定して移動する マトリックスを指定して拡大する 任意の点を基点にスケーリング マトリックスを指定して回転する 任意の点を基点に回転 マトリックスを指定して反転する マトリックスを指定してY軸反転 マトリックスを指定してX軸反転 マトリックスを指定してXY軸反転 マトリックスを指定してシアーする マトリックスを指定してX軸方向にシアーする マトリックスを指定してY軸方向にシアーする 第6章 Font ■ SWT でのFont ■ Font およびFontData の作成 Font のコンストラクト FontData のコンストラクト FontからのFontData の取得 Control に作成したFontを設定する ■ 既存のフォントを変更する FontData の記述を取得/設定する Control のデフォルトフォント名で変更する ■ プラットフォームで利用可能なフォントをリストアップする Scalable フォントとBitmap フォント フォントの歴史 和文フォントのみをリストアップする 欧文フォントのみをリストアップする ■ MS WORD に似たフォント設定Cool Bars を作成する ■ フォント設定をコンテキストメニューで行う ■ 該当フォントがないときに代用フォントを指定する ■ プラットフォームごとに異なるフォントを指定する プラットフォームで存在するフォントの一例 ■ すべてのプラットフォームで確実に利用可能なフォントは? ■ プラットフォームのシステムフォントを取得 ■ アプリケーションにフォントを埋め込む ■ アプリケーションでのフォント設定の保存と復元 ■ ローケール(locale) の設定 ■ GC でのテキストの描写 drawText と drawString GCでのテキスト描写のフォントを設定または取得する テキストのアンチエイリアス ■ 文字列(テキスト)の幅や高さの測定が必要となるとき ■ FontMetrics で高さを測定する FontMetrics のコンストラクト FontMetrics の高さ測定のためのメソッド サンプル 1 サンプル 2(ベースラインをそろえる) ■ テキスト(文字列)の幅を測定する テキストのよこに計算してイメージを表示する 文字の幅を取得する 第7章 Region ■ Clipping (クリッピング)とRegion クリッピングと描写領域 サンプル 1 サンプル 2 ■ Region の作成と領域の追加、交差、除去など regionでGCをclipさせるには ? region に領域を加える、一部領域を除去する サンプル 1 サンプル 2(円形グラデーション) region の領域の交差 交差の判定 region がカバーする領域を全体的に移動させる region の境界を取得する ■ Pathを使用したGCのClipping (クリッピング) ■ Control のClipping (クリッピング) ■ Shell のClipping(クリッピング) サンプル 1(かぎ穴のシェイプ) サンプル 2(かぎのシェイプ) 第8章 Color ■ SWT でのColor ■ RGB RGB モデル以外のカラーモデル ■ Direct ColorとIndexed Color Direct Color Indexed Color ■ Color の作成 Color のコンストラクタとメソッド HSB モデルでcolor を作成 ■ システムカラー(System Colors) Widget 固有の色などの取得 第9章 Image ■ SWT でのImage ■ Image クラスのインスタンスの作成とリソースの破棄 Imageクラスのインスタンスの作成 リソースの破棄 イメージの境界(bounds)の取得 ■ ファイルからImage を読み込んで扱う 絶対パス指定 プロジェクトからの相対パス指定 Javaファイルからの相対パス指定 URL でのパス指定 ■ GCでイメージを表示する GCでもとのイメージをストレッチして表示する GCでもとのイメージの一部を表示する ■ イメージ にGCで線や文字などの描写表現を加える ■ 空白(blank) からイメージを作成する ■ イメージのコピー イメージオブジェクトのコピー 指定イメージのコピーやグレー(Gray)、実行不能(disable) イメージの作成 Display やControl でのイメージをGCでコピーする Canvas のスナップショット Shell のスナップショット ディスプレイ上の任意の領域をスナップ 同じDrawable内での指定領域のイメージのコピー ■ イメージ からの透過の除去 ■ ImageData ImageData のフィールド depthと色数 16 ビットと24 ビット スキャンライン ImageData のピクセル操作のためのメソッド ■ PaletteData PaletteData のコンストラクトとフィールド ピクセルやRGBの情報を取得する インデックスパレットでイメージ作成する ダイレクトパレットでイメージ作成する ■ 透明度(Transparency) 透過をもつイメージファイルのサポート ImageData での透明度の設定 特定の色を透過にしてイメージを表示する ImageData の透過などの状態を確認するには? ■ イメージ内の色の置き換え イメージ内の特定の1色を指定の色に置き換える。 イメージ内の一定の範囲の色を特定の色に置き換える イメージ内の指定した範囲のピクセルを特定の色で塗りつぶす ■ ImageData のresize (リサイズ) ■ ImageLoader クラス ImageLoader のコンストラクト ImageLoader を使用したイメージのロードとセーブ ImageLoaderで扱えるのイメージファイル形式の可否 イメージのロード イメージのセーブ ■ バックグラウンドスレッドで大きいサイズのイメージをロード ■ 段階的にロード途中のイメージを表示する ■ Canvas 内に部分表示された画像を任意の位置にスクロールする スクロールバーでスクロールする マウスハンド(手の形をしたカーソルイメージ)でスクロールする 第10章 Cursor ■ SWT でのカーソル (Cursor) ■ システムカーソルの作成 SWTスタイル定数とカーソルイメージ Dsiplay のメソッドからのシステムカーソルの取得 スクリーン上のカーソル座標を取得または設定する 現在のカーソル座標にあるコントロールが何か知るには? ■ カスタムカーソル (Custom Cursor) の作成 カスタムカーソル (Custom Cursor) 用意したイメージファイルから、カスタムカーソルを作成 SWTアプリケーション内でカスタムカーソルのイメージを作成 第11章 描写戦略とRedraw ■ 描写戦略の重要性 ■ 描写の更新の延期を戦略的にする 複数のpaint event を勝手に1つにマージさせないためには? ■ Paint Event ■ 意図的に再描写(redraw) させる canvas の子のコントロールもいっしょに再描写する ■ 強制的にpaintイベントを吐き出す(Update) サンプル 1 サンプル 2 ■ 再描写を意図的に停止/再開する ■ リペイントとリサイズ (Repainting and Resizing) サンプル 1 サンプル 2 サンプル 3 ■ 背景の塗りつぶし ■ ダブルバッファリング 参考文献 |
SWT3.4 対応 ページ数 638p
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
SWT 最強ノウハウ集 Vol4 はSWTのグラフィック(Graphics ) 関連のノウハウを集結させた世界最強のノウハウ集です。SWTのグラフィックを勉強すれば、SWT単独で動くアプリケーションはもちろんのこと、Jfaceやリッチクライアントプラットフォームで作成したアプリケーション、Eclipseプラグインに対し、さまざまな図形や文字を描くことができます。さらに、その図形や文字を変形し、加工し、装飾し、イメージ(Image)ロードおよびセーブなど、多種多様なグラフィック機能をもたせることが可能になります。WordやExel などの標準的なアプリケーションでよく見られるフォントメニューや色選択のためのパレット、パターン描写、図形の回転やシアー、マウスを使ったベクトル線の描写、イメージのピクセルごとのマッピング、透明度の変更、線形グラデーション、円形グラデーション、XORなどはこのノウハウ集を学べば理解することができるでしょう。SWTのGUI はそのオペレーションシステムのネイティブなリソースを使用するので、動作が速く、Color の色深度(color depth)やフォント、システムカーソルなどはオペレーティングシステムに適したものがデフォルトで使用可能です。このノウハウ集は英語ではなくすべて日本語なのでご自身のアプリケーションで加えたい機能があれば、わざわざ、煩雑な情報の断片を理解し、サンプルコードを不安ながら書いてトライするのではなく、すぐこのノウハウ集をEclipse のヘルプから参照し、高機能なグラフィックを実装することができ、ご自身の開発のアプリケーションやプラグインの開発期間を大幅に短縮させ、生産性を向上することが可能になります。
■ SWTのさまざまなグラフィックに関するクラスやメソッドを学びます。
Copyright (C) 2007- Eclipseツール勉強会 All Rights Reserved.
■■ 2008/07/07 version 1.0 リリース