■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
|
|