C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: JPanel、JScrollPaneを使った画像描画時の残像


(過去ログ 107 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■63767 / inTopicNo.1)  JPanel、JScrollPaneを使った画像描画時の残像
  
□投稿者/ K/M (1回)-(2012/10/08(Mon) 15:47:26)

分類:[Java] 

環境:Eclipse Indigo3.7 ?(いま手元に環境がない)

画像描画するためのクラスをJPanelから継承して作成(clsPict)し、
JFrame上のContainer、JScrollPane、clsPictと乗せた状態で画像を
いくつか切り替えて表示しているのですが、以下の現象がでてはまってしまいました。

1.一つ前の画像が残る。
2.以下のようにJPanelを3つ、JScrollPaneを1つ置き、JScrollPane上のclsPict
に画像を表示すると、JPanel3に乗せているJTableの内容が残像のように表示される。
JPanel1 JPanel2
JPanel3 JScrollPane
3.画像を表示している画面から別の画面(JDialg)を開いて、同じように
Container、JScrollPane、clsPictと乗せて画像を表示すると、前の画面が
残って見える。(画像の領域だけではなく、JButtonとかJTable)

すべて一度別のウィンドウの裏に廻すと残像は消ます。
画像を表示し直す場合、以下のようにして描画領域をクリアしてから
描いてます。

Dimension d = new Dimension(this.getSize().width, this.getSize().height);
Graphics g = getGraphics();
g.setColor(getBackground());
g.clearRect(0, 0, (int)d.getWidth(), (int)d.getHeight());

BufferedImage image;
image = ImageIO.read(file);
BaseImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics g = BaseImage.getGraphics();
g.drawImage(image, 0, 0, null);

Step実行で見ているとg.clearRect()の時点で全て消えていました。

なにが悪いのか、どこから調べたらいいのかが不明です。どなたか手がかりでもいいので、教えてください。

同じ質問の投稿先
http://www.javaroad.jp/bbs/answer.jsp?q_id=20121005195937211
引用返信 編集キー/
■63774 / inTopicNo.2)  Re[1]: JPanel、JScrollPaneを使った画像描画時の残像
□投稿者/ K.M (1回)-(2012/10/09(Tue) 17:54:15)
質問取り消します
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -