2016-04-05 15 views
1

Wenn ich versuche, eine GIF-Animation zu laden, bekomme ich nur einen leeren Rahmen. Weißt du was falsch ist? Die Datei befindet sich in Extras/loading.gif befindet:Problem mit GIF-Animation in Java Swing

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


} 
} 

Ich habe loading.gif die Nutzung dieser Website http://spiffygif.com mit den Standardeinstellungen. Ich habe gerade den Namen von gif.gif in loading.gif geändert. Hier ist sie:

enter image description here

+0

Würdest du 'loading.gif' teilen? – rdonuk

+1

Funktioniert der Code mit normalen JPG-Bildern, die am gleichen Ort gespeichert sind? – Hirak

+0

Ich habe die Frage geändert, um das gif einzuschließen. Vielen schätzen die Hilfe. – kit

Antwort

1

Ich bin mit Ubuntu (Linux), damit Ihr Code funktionierte gut für mich, die mich führt zu glauben, dass diese mit dem Dateinamen eine Datei Scheider Problem sein kann. Hast du Windows? Wenn ja, versuchen Sie dies:

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

Die Datei-Separator unter Windows ist "\" und auf MAC/Linux ist "/". Da "\" in Java ein Escape-Zeichen ist, müssen Sie zwei davon verwenden, um dies tatsächlich zum Laufen zu bringen.

+0

Der Separator spielt keine Rolle. Java/Windows wird damit umgehen. Die Verwendung von "/" ist einfacher, so dass Sie sich nicht darum kümmern müssen, das "\" zu umgehen. – camickr

+0

Ich benutze einen Mac. Versucht /, //, \ und \\, funktioniert aber immer noch nicht. Irgendwelche anderen Ideen? – kit

1

Run diese Quelle auf Ihrem Gerät aus und überprüfen es funktioniert ..

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. Anwendungsressourcen werden zum Zeitpunkt der Bereitstellung zu eingebetteten Ressourcen. Es ist daher ratsam, sofort auf sie zuzugreifen, als ob sie gerade vorhanden wären. Auf eine muss per URL anstatt Datei zugegriffen werden. Informationen zum Erstellen der URL finden Sie unter info. page for embedded resource.

+0

Bitte antworten Sie darauf. Es ist "keine Antwort" und muss gelöscht werden. –