tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
444
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Wundfix Wundfix ist offline Rookie
    Registriert seit
    Sep 2011
    Beiträge
    5
    Hi,

    ich will ein Miniimage im src-Folder(oder ähnlichem) verstecken, so das ich die Datei nicht mit übergeben muss ... so das ich am ende eine .jar generiere und da das Bild schon mit drin ist.

    Ich habs mit relativem Pfad versucht und unter Eclipse findet er es auch im src-verzeichnis aber wenn ich es dann generiere sucht er in dem Ordner wo die .jar liegt nach einem src-Verzeichnis
     

  2. #2
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist gerade online Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Hi Wundfix und Willkommen bei Tutorials.de,

    wenn du eine Datei aus einer Jar-Datei laden willst, machst du das am besten über getClass().getResource(...). Damit greifst du auf alle Dateien zu, die im selben Package liegen wie die Klasse, in der diese Methode aufgerufen wird. Die Klasse muss ein Objekt sein!

    So kannst du dann dein Bild aus der Jar-Datei laden:
    Code java:
    1
    2
    3
    
        public Image loadImage(String name) {
            return new ImageIcon(getClass().getResource(name)).getImage();
        }

    Gruß

    Fabio
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  3. #3
    Avatar von Akeshihiro
    Akeshihiro Akeshihiro ist offline Mitglied Platin
    Registriert seit
    Aug 2008
    Ort
    Kirchlengern (NRW)
    Beiträge
    647
    Dafür würde ich eine andere Vorgehensweise vorschlagen, jedenfalls mache ich das anders und die Vorgehensweise hat schon ihren Sinn...

    Und zwar mache ich das so:
    Ich habe immer ein Package names res (für resources, der Name ist aber eigentlich egal) und darin sind dann weitere Sub-Packages wie images, langs, help, ..., in welche dann eben die entsprechenden Files rein kommen. In dem Package res habe ich immer eine Klasse namens ResLoader. Die Klasse hat keine Implementierung, sie dient quasi nur als Referenz.

    Die Bilder usw kann man dann ganz leicht anhand der Klasse ResLoader laden. Wie man die Dateien lädt, ist immer von der Anwendung der Datei abhängig, aber hier mal als Stream.
    Code java:
    1
    
    InputStream in = ResLoader.class.getResourceAsStream("subpackage/datei");
    Ich habe das schon ne Weile nicht mehr benutzt, ist daher grad so ausm Kopf gegriffen. Falls es nicht klappt, einfach sagen, dann bastel ich das flot nach.

    Ich hab mir das mal so ausgedacht, weil das mit getClass()... einfach Mist ist, denn wenn mehrere Klassen die Ressourcen brauchen, dann ist der Pfad immer ein anderer. Deshalb über eine leere Klasse das ganze zentralisieren und kann immer die selben Pfade benutzen ohne Angst haben zu müssen, dass es irgendwo knallt.
     
    Man sagt, das Schwert eines Samurai sei seine Seele ...

    Mit den Beiträgen ist es wie mit Schwertern: Je besser die Rohstoffe sind und je öfter man diese bearbeitet, desto hochwertiger sind sie.

    Das Schmieden ist eine Kunst; Das Schreiben auch ;)

  4. #4
    Wundfix Wundfix ist offline Rookie
    Registriert seit
    Sep 2011
    Beiträge
    5
    Hi Fabio,

    danke für die schnelle antwort

    ich hab das mal so umgesetzt. allerdings bringt er mir jetzt die Meldung "Unknown Source"

    Code :
    1
    2
    
    Image image = new ImageIcon(getClass().getResource("src/Minilogo.GIF")).getImage();
    frame.setIconImage(image);
    ´

    Das Bild Minilogo.GIF liegt im src-Verzeichnis
     

  5. #5
    Wundfix Wundfix ist offline Rookie
    Registriert seit
    Sep 2011
    Beiträge
    5
    ok danke ... Akeshihiro hat mich auf den richtigen Weg gebracht muss dann natürlich das Bild zu der entsprechenden Klasse schieben.
    Dein ResLoader ist an sich ne gute Idee ... allerdings brauch ich das Bild ja nur bei der GUI und das ist eh alles in einem Package

    Danke Leute
     

  6. #6
    Avatar von Akeshihiro
    Akeshihiro Akeshihiro ist offline Mitglied Platin
    Registriert seit
    Aug 2008
    Ort
    Kirchlengern (NRW)
    Beiträge
    647
    Ja gut, wenn du eh alles in einem Package hast... Ich habe immer mehrere, eigentlich grundsätzlich, daher mach ich das eben so.
     
    Man sagt, das Schwert eines Samurai sei seine Seele ...

    Mit den Beiträgen ist es wie mit Schwertern: Je besser die Rohstoffe sind und je öfter man diese bearbeitet, desto hochwertiger sind sie.

    Das Schmieden ist eine Kunst; Das Schreiben auch ;)

Ähnliche Themen

  1. div verstecken
    Von port29 im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 07.01.08, 10:13
  2. CS1: Auswahl verstecken
    Von Pazu im Forum Photoshop
    Antworten: 4
    Letzter Beitrag: 20.08.05, 19:43
  3. Verstecken, wiederherstellen?
    Von DeathlyGothSoul im Forum Visual Basic 6.0
    Antworten: 11
    Letzter Beitrag: 15.05.05, 19:48
  4. URL in PDF verstecken
    Von quidnovi im Forum PHP
    Antworten: 0
    Letzter Beitrag: 18.10.04, 17:41
  5. Datei verstecken
    Von Chri$ im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 30.05.04, 10:58