10/02/25 03:59:34
>>912
画像ファイルはクラスファイルと同じ場所にあるimage00.jpg~image11.jpgの12枚
1秒毎に各画像ごとに10%の確率で画像を変えているのでどの画像も変わらない確率が秒毎にC(5,0)*(0.1^0)*(0.9^5)=約60%ある
import javax.swing.*;
public class Hoge extends JApplet implements java.awt.event.ActionListener {
private java.util.List<ImageIcon> pool = new java.util.LinkedList<ImageIcon>();
private Timer timer = new Timer(1000, this);
private JLabel[] label = new JLabel[5];
@Override public void init() {
setLayout(new java.awt.FlowLayout());
for (int i = 0; i < 12; i++) pool.add(new ImageIcon(getImage(getCodeBase(), String.format("image%02d.jpg", i))));
java.util.Collections.shuffle(pool);
for (int i = 0; i < 5; i++) add(label[i] = new JLabel(pool.remove(0)));
}
@Override public void destroy() {
getContentPane().removeAll();
pool.clear();
}
@Override public void start() { timer.start(); }
@Override public void stop() { timer.stop(); }
public void actionPerformed(java.awt.event.ActionEvent e) {
for (int i = 0; i < 5; i++) {
if (Math.random() >= 0.1) continue;
pool.add((ImageIcon)label[i].getIcon());
label[i].setIcon(pool.remove(0));
}
}
}