*概要 [#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() を実行することで,再描画します.