Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

画像を数秒間表示した後、別の画像に切り替えようとしてもうまくいかない

初めまして。JAVAを始めて数ヶ月しかたってない初心者です。

画像を数秒間表示した後、別の画像に切り替えるプログラムを作ろうと思ってjavaでプログラムを書いているのですが、
一応フォームにラベルにて画像を表示させることはできましたが、Threadで画像を数秒間表示した後、別の画像に切り替えようとしているのですが、なかなかうまくいきません。
初心者なので色々とめちゃくちゃな書き方をしているかもしれませんがご教示お願いします。

=========================================

package gazoukirikae;
import java.awt.*;
import javax.swing.*;
import java.awt.FlowLayout.*;


public class Gazoukirikae extends JFrame{
    
   
    public static void main (String[] args) {
    JFrame frame = new JFrame ();
   //////////インスタン配列///////////////
        ImageIcon[] image = new ImageIcon[2];
            image[0]= new ImageIcon("C:\\画像A.jpg");
                image[1]= new ImageIcon("C:\\画像B.jpg");
    //////////////////////////////////////////////////////////////////////////
                
                JLabel label = new JLabel (image[0]);
                    frame.getContentPane ().add (label);
                        frame.getContentPane ().setLayout (new FlowLayout());
                            frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
                                frame.setSize (200, 300);
                                   frame.setVisible (true);
                                   
               //////スレッドを開始
               animation anime = new animation (label,image);
                    anime.start ();

                    
    }
    
}


=========================================

package gazoukirikae;
import java.awt.*;
import javax.swing.*;
import java.awt.FlowLayout.*;
import java.util.logging.Level;
import java.util.logging.Logger;
public class animation extends Thread{
    
    JLabel label;//ラベルのフィールド
        ImageIcon[]image;//イメージのフィールド
        
        public animation(JLabel label,ImageIcon[]image){
            this.label=label;
                this.image=image;
            
        }
        
        public void run(){
            for (int i = 0; i < 2; i++) {
                try {
                    wait (200);
                } catch (InterruptedException ex) {
                    JDialog dialog = new JDialog ();
                }
                label.setIcon (image[1]);
                try {
                    sleep(200);
                } catch (InterruptedException ex) {
                    JDialog dialog = new JDialog ();
                }
                
                    
                
            }
        }
        
}

2

回答

7130

閲覧

2件の回答

評価

0

そういう場合にやることは「デバッグ」と言うんだ。
ソースコードの行レベルで、どこまで想定通りでどこからおかしいのかを、追ってみるんだ。
古典的には行と行の間にSystem.out.println()で変数の値を表示してみる。
今だとEclipseのような統合開発環境は、デバッグ用の各種機能を搭載している。
そういうものをどうやって使うのか調べて、自分のコードでやってみるんだよ。

評価

0

一行一行にどういう意味をもたせているのか、そこで使っているAPIの使い方は適切か、単純な書き間違いはないか。
上手くいかないときにやることは誰でも一緒だ。
上手くいかない→質問だと、いつまで経っても力は付かない。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。