2016-04-05 23 views
1

Bir gif animasyonu yüklemeye çalıştığımda boş bir kare alıyorum. Neyin yanlış olduğunu biliyor musun? dosya ekstralar/loading.gif içinde yer almaktadır:Java swing'te gif animasyonu ile sorun

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); 


} 
} 

varsayılan ayarlarla bu web sitesini http://spiffygif.com kullanarak nqpqiw.png aldık. Sadece gif.gif ile loading.gif arasındaki ismi değiştirdim. İşte burada:

enter image description here

+0

'loading.gif' ile paylaşır mısınız? – rdonuk

+1

Kodunuz düzenli jpg görüntüleri ile çalışıyor mu aynı yerde mi? – Hirak

+0

Gif'i eklemek için bu soruyu değiştirdim. Yardımı çok takdir ediyorum. – kit

cevap

1

Ben Ubuntu (Linux) koşuyorum böylece kod, bu isimde bir dosya ayırıcı sorunu olabileceğini beni inandıramaz hangi benim için iyi çalıştı. Windows kullanıyor musunuz? Eğer öyleyse, şunu deneyin:

ImageIcon loading = new ImageIcon("extras\\loading.gif"); 
Windows dosya ayırıcısı "\" ve MAC/Linux "/" şeklindedir. "\" Java'da bir kaçış karakteri olduğundan, bunu işe almak için bunlardan ikisini kullanmanız gerekir.

+0

Ayırıcı önemli değil. Java/Windows bunu halleder. "/" Kullanımı daha kolay olduğundan "\" den kaçmak için endişelenmenize gerek yok. – camickr

+0

Mac kullanıyorum. Denedim /, //, \ and \\ ama hala çalışmıyor. Başka fikirlerin var mı? – kit

1

çalıştırın bu kaynak makinenizde ve işe yarıyor kontrol ..

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. Uygulama kaynakları yerleştirme sırasına göre gömülü kaynaklara dönüşecek, bu yüzden şu anda olduğu gibi onlara erişmeye başlamak akıllıca olacaktır. Bir , dosya yerine URL'ye erişilmelidir. URL'nin nasıl oluşturulacağıyla ilgili info. page for embedded resource'a bakın.

+0

Lütfen buna cevap verin. 'Cevap değil' ve silmeye ihtiyacı var. –