以下のコードの流れは問題なく把握できるのですが、終盤付近で
label1 = new JLabel(MyImage[0]);
frame.add(label1);
というコードがありますが、この場合実行時にはじめに表示される画像はsrc/Deke0.gifであっておりますか。
どうもそのように動いていない気がするのですが。
Java
1package week7; 2 3import java.util.Random; 4import java.util.Timer; 5import java.util.TimerTask; 6 7import javax.swing.ImageIcon; 8import javax.swing.JFrame; 9import javax.swing.JLabel; 10 11class DanceTsk extends TimerTask { 12 13 public void run() { 14 Random r = new Random(); 15 int i = Dance.MyImage.length; 16 Dance.label1.setIcon(Dance.MyImage[r.nextInt(i)]); 17 } 18} 19 20public class Dance extends JFrame { 21 22 private static final long serialVersionUID = 1L; 23 24 static JLabel label1; 25 static ImageIcon[] MyImage = { new ImageIcon("src/Deke0.gif"), new ImageIcon("src/Deke1.gif"), 26 new ImageIcon("src/Deke2.gif"), new ImageIcon("src/Deke3.gif"), new ImageIcon("src/Deke4.gif") }; 27 28 public static void main(String[] args) { 29 Dance frame = new Dance(); 30 frame.setBounds(200, 200, 200, 150); 31 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 32 label1 = new JLabel(MyImage[0]); 33 frame.add(label1); 34 Timer timer = new Timer(true); 35 timer.schedule(new DanceTsk(), 0, 500); 36 frame.setVisible(true); 37 } 38}
追記
実行間隔を遅くし実行しましたが、最初に表示されるのはバラバラです。
なぜlabel1 = new JLabel(MyImage[0]);を渡すのでしょうか。なんでもいいのですかね。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/13 11:49