2016-04-05 12 views
1

gifアニメーションを読み込もうとすると、空のフレームが表示されます。何が間違っているか知っていますか?私はデフォルトの設定で、このウェブサイトhttp://spiffygif.comを使用してloading.gifだJavaスイングのgifアニメーションの問題

package an1; 

import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 


public class An1 { 

public static void main(String[] args){ 

    JFrame frame = new JFrame("Test"); 

    ImageIcon loading = new ImageIcon("extras/loading.gif"); 
    frame.add(new JLabel(loading, JLabel.CENTER)); 

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setSize(400, 300); 
    frame.setVisible(true); 


} 
} 

:ファイルがloading.gifエクストラ/内に配置されています。名前をgif.gifからloading.gifに変更しました。ここでは、次のとおりです。

enter image description here

+0

'load.gif'を共有しますか? – rdonuk

+1

あなたのコードは、同じ場所に保管された通常のjpg画像で動作していますか? – Hirak

+0

gifを含むように質問を修正しました。助けに感謝します。 – kit

答えて

1

私は、これは、ファイル名とファイル・セパレーターの問題であってもよいことと信じて私をリードしているので、あなたのコードは私のためにうまく働いたのUbuntu(Linux)を実行していますよ。 Windowsを使っていますか?その場合は、次のように試してください:

ImageIcon loading = new ImageIcon("extras\\loading.gif"); 

Windowsのファイル区切り文字は「\」で、MAC/Linuxでは「/」です。 "\"はJavaのエスケープ文字であるため、実際にこれを動作させるには、2つを使用する必要があります。

+0

セパレータは関係ありません。 Java/Windowsがそれを処理します。 "/"を使用する方が簡単ですので、 "\"をエスケープする心配はありません。 – camickr

+0

私はMacを使用しています。試した/、//、\、\\でもまだ動作していません。他のアイデア? – kit

1

実行マシン上のこのソースとそれが動作確認してください。..

import java.net.*; 
import javax.swing.*; 

public class An1 { 

    public static void main(String[] args) throws MalformedURLException { 
     JFrame frame = new JFrame("Test"); 

     ImageIcon loading = new ImageIcon(
       new URL("http://i.stack.imgur.com/8IXqb.gif")); 
     frame.add(new JLabel(loading, JLabel.CENTER)); 

     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(400, 300); 
     frame.setVisible(true); 
    } 
} 

N.B.アプリケーションリソースは、デプロイメント時に埋め込まれたリソースになるので、今のようにアクセスすることをお勧めします。 には、ファイルではなくURLでアクセスする必要があります。 URLの作成方法については、info. page for embedded resourceをご覧ください。

+0

これにご返信ください。それは「答えではない」であり、削除が必要です。 –