Frage von Funkschy, 43

Jar Datei mit gif exportieren?

Hier mein Quellcode (er funktioniert in eclipse genau wie gewünscht, nach dem exportieren jedoch wird nur noch der Text angezeigt und nicht mehr die Animation):

imports...

public class Wichteln { private JFrame frame; private ImageIcon img; private JTextArea output;

public Wichteln() {     
    frame = new JFrame("Ho Ho Ho");
    img = new ImageIcon("bin/santa.gif");       
    output = new JTextArea();
    output.setBackground(Color.BLACK);
    output.setFont(new Font("Verdana", Font.LAYOUT_LEFT_TO_RIGHT, 14));     
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.add(new JLabel(img),BorderLayout.CENTER);
    frame.add(output, BorderLayout.EAST);
    frame.setSize(img.getIconWidth(), img.getIconHeight());
    frame.setResizable(false);
    Dimension d = frame.getToolkit().getScreenSize();
    frame.setLocation((int) ((d.getWidth() - frame.getWidth()) / 2), (int) ((d.getHeight() - frame.getHeight()) / 2));
    frame.setVisible(true);
    int i = 0;
    while(true) {
        output.append("Ho Ho Ho"+"\n");         
        switch(i) {
        case 0:
            output.setForeground(Color.BLUE);
            break;
        case 1:
            output.setForeground(Color.RED);
            break;
        case 2:
            output.setForeground(Color.YELLOW);
            break;
            
        }
        if(i >= 2) {
            i = 0;
        }
        else {
            i++;
        }
        
        try {
            Thread.sleep(250);
        }
        catch(Exception e) {}
    }
    
}

public static void main(String[] args) {
    Wichteln w = new Wichteln();
    
}

}

Antwort
von PerfectMuffin, 29

Musst entweder zur Laufzeit wissen, wo das gif ist, oder es mit in die JAR packen, dann kommst du aber nicht mehr normal über File, sondern nur noch über Class :: getResource() (/asStream) ran.

Kommentar von KnusperPudding ,

Direkter Beispielcode, da mir das auch öfter unter kommt:

InputStream inputStream = getClass().getClassLoader().getResourceAsStream("pfad/zur/gif/datei.gif");


Kommentar von Funkschy ,

Ich habe versucht das einzubauen. In eclipse funktioniert das ganze auch, wenn ich das Projekt jedoch als jar exportiere startet es gar nicht mehr.

Kommentar von KnusperPudding ,

Ich weiß ja nicht welchen Pfad du verwendest. Aber als Stream, wie muffin schon sagte, kommst du dran, auch wenn das gif in der jar ist.

Keine passende Antwort gefunden?

Fragen Sie die Community