setIcon() の反対のようなものを探しています。
こんばんは。GUIで、一秒ごとに画像を切り替える、スライドショーのようなものを作ってみたのですが、画像が切り替わらず、画像の上に画像が配置され、どんどん積み重なっていく感じになりました。以下がそのコードです。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class IconChange extends JFrame{
private Timer timer;
private JLabel img;
private int sec;
private Icon[] icon=new ImageIcon[11];
private JPanel pane;
public static void main(String[] args){
IconChange frame=new IconChange("画像チェンジ");
frame.pack();
frame.setDefaultCloseOperation(3);
frame.setVisible(true);
}
public IconChange(String title){
super(title);
sec = 0;
pane=(JPanel)getContentPane();
pane.setPreferredSize(new Dimension(800,600));
pane.setOpaque(true);
pane.setBackground(new Color(0x00000000, true));
img=new JLabel(new ImageIcon("images2/1.jpg"));
pane.add(img);
for(int i=0;i<=10;i++){
icon[i]=new ImageIcon("images2/"+i+".png");
}
timer = new Timer(1000 , new Kirikae());
timer.start();
}
class Kirikae implements ActionListener{
public void actionPerformed(ActionEvent e){
img.setIcon(icon[sec]);
if(sec>=10){sec=0;}
sec++;
}
}
}
JLabelに画像をセットしたら、前の画像と入れ替わり新しい画像がセットされるとおもったのですが、前の画像が残ったまま新しい画像がセットされます。新しい画像をセットする前に前の画像のセットを取り消したいのですが、いい方法がございましたらアドバイスお願いいたします。
補足
たしかonLoadまで要素が取得できなかったと思うのですが、 そうするとonLoad前にキャッシュの読み出し防止用の アドレスの疑問符以降を追加できないのですが...