- 152 名前:デフォルトの名無しさん mailto:sage [2006/11/19(日) 19:51:47 ]
- 質問です。
Java2DとSwingに関連する内容なのですが、 JPanalを継承したクラスを、JTabbedPaneにaddして、そのクラスのpaintメソッドで Java2Dの描画を行っています。 そこで、 public void paint(Graphics g) { Graphics2D g2 = (Graphics2D)g; AffineTransform af = new AffineTransform(); g2.setTransform(af); 以下描画... } とすると、ウィンドウサイズを変更したり、再描画させたりした時に描画するものの位置がずれます。 具体的にいうと、jTabbedPaneのタブの大きさだけ描画した物が上に移動します。 原因を調べてみると、どうもAffineTransformオブジェクトをGraphics2Dに登録すると、 座標計算の基準点がタブに登録したJPanel派生クラスの領域の左上ではなく、 jTabbedPaneの領域(タブ表示域も含んだ)の左上に、再描画の時に変更になってしまうようなのです。 これはJavaランタイムのバグなのでしょうか。ちなみにJavaのバージョンは1.5.0_08です。
|

|