画像を再描画
Posted: 2013年1月29日(火) 21:18
javaです。
以下の、ウィンドウ中に画像を表示するプログラムをeclipseで実行、
出力されたウィンドウを別のウィンドウで上にかぶせて、出力された方のウィンドウを見たら、
出力されたウィンドウ中の画像が消えてしまうことが分かりました。
最小化、再実行すると直りますが、このままでは好ましくないです。何か良い改善方法は無いでしょうか?
素人意見としては、アクティブになったら再描画する、かぶせられても画像が消えないようになる等が方法になるのかと考えているのですが、どうプログラミングすればいいかまではわかってないです。
以下の、ウィンドウ中に画像を表示するプログラムをeclipseで実行、
出力されたウィンドウを別のウィンドウで上にかぶせて、出力された方のウィンドウを見たら、
出力されたウィンドウ中の画像が消えてしまうことが分かりました。
最小化、再実行すると直りますが、このままでは好ましくないです。何か良い改善方法は無いでしょうか?
素人意見としては、アクティブになったら再描画する、かぶせられても画像が消えないようになる等が方法になるのかと考えているのですが、どうプログラミングすればいいかまではわかってないです。
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JFrame;
public class Jpeg extends JFrame
{
Image[] img = new Image[10];
public Jpeg()
{
super("Win JPEG");
img[0] = getToolkit().getImage("0.gif");
img[1] = getToolkit().getImage("1.gif");
img[2] = getToolkit().getImage("2.gif");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(320, 230);
setVisible(true);
}
public static void main(String[] args)
{
new Jpeg();
}
public void paint(Graphics g)
{
super.paint(g);
int ofs = 0;
for (Image img : this.img) {
if (img!=null) {
g.drawImage(img,16+ofs,40+ofs,this);
ofs += 10;
}
}
}
}