*概要 [#lc730bd7]

-パネルの追加,削除を行った場合や,統合環境全体のウインドウサイズを変更した場合,パネルの大きさが変わります.
-パネルの大きさが変わった場合でも,その大きさに合わせて表示できることが望ましいです.

*実装方法 [#v42e6252]

**1.パネルサイズの取得およびパネルサイズ変更の有無の確認 [#c3ad48ec]

-可視化インタフェース内で,スーパークラスで定義されている boolean getPanelSize() を実行すると,スーパークラスで定義されている変数 int oldSizeX, oldSizeY, sizeX, sizeY, double changeX, changeY に以下の値が代入されます.
-可視化ツール内で,スーパークラスで定義されている boolean getPanelSize() を実行すると,スーパークラスで定義されている変数 int oldSizeX, oldSizeY, sizeX, sizeY, double changeX, changeY に以下の値が代入されます.
---oldSizeX と oldSizeY に,直前のパネルのサイズ (sizeX,sizeY) を代入
---sizeX と sizeY に,現在のパネルのサイズを代入(初期値にはウインドウサイズから計算された値が代入されます)
---changeX と changeY に,パネルのサイズの変化倍率(sizeX/oldSizeX, sizeY/oldSizeY)を代入~
(oldSizeXやoldSizeYが 0 だったときは,1.0 が代入されます)
-また,パネルサイズに変更があった場合には true を,サイズ変更がなかったときは false を返り値とします.

**2.パネルサイズ変更への対応 [#yc2ea28e]

-2次元のグラフィック表示を行う関数 paintComponent(Graphics g) の冒頭で,以下の様に処理を書くことができます.

    boolean change = getPanelSize();
    		
    if(change)
	    calculateCoordinates();		//パネルサイズの変更があった場合,座標を再計算する自作の関数を呼び出す

**3.新しい座標の計算 [#mfab3953]

-パネル内の描画を行う際に, x 座標を changeX 倍, y 座標を changeY 倍することで,新しいパネルサイズにおける座標を得ることができます.
-パネル全体を覆う背景の場合には,sizeX, sizeY をそのまま使うことで,パネルサイズに対応できます.

**4.パネルの再描画 [#oa602bcc]

-可視化インタフェース内で,repaint() を実行することで,再描画します.
-可視化ツール内で,repaint() を実行することで,再描画します.

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS