tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
5190
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    SNOWMAN-X SNOWMAN-X ist offline Mitglied Bronze
    Registriert seit
    Jul 2004
    Ort
    Nürnberg
    Beiträge
    28
    Hallo,

    ich will für mein Programm ein Logo und ein eigenes AppIcon laden.
    Code :
    1
    
    Image srLogo = new Image(mainDisplay, "D:/Programme/eclipse/Workspace/ShadowRun/src/Shadowrun_logo.gif");
    Aber das ganze soll später als JAR Datei auf den verschiedensten Kisten laufen, sollte der Pfad ja doch irgendwie auch relativ sein.
    Nur irgendwie bekomm ich das nicht hin.

    Mit
    Code :
    1
    2
    3
    
    Image srLogo = new Image(mainDisplay, "Shadowrun_logo.gif");
    Image srLogo = new Image(mainDisplay, "./Shadowrun_logo.gif");
    Image srLogo = new Image(mainDisplay, "../Shadowrun_logo.gif");
    bekomme ich nur die Meldung, dass die Datei nicht gefunden wurde.

    Da ich gerade erst angefangen hab, mir Java selber bei zu bringen, hab ich auch keine wirkliche Idee, wie ich da weiterkommen kann.

    Ist es überhaupt möglich, Bilder über relative Pfade zu laden? Und wenn ja, wie macht man das dann?
     

  2. #2
    Avatar von celph_titled
    celph_titled celph_titled ist offline Mitglied Gold
    Registriert seit
    May 2007
    Beiträge
    107
    Hallo,

    für einen relativen Pfad nimmst du am Besten Class.getResource, also

    Code :
    1
    
    Image srLogo = new Image(mainDisplay,getClass().getResource("src/Shadowrun_logo.gif"));

    das ist dann der Pfad relativ zu der aktuellen Klasse.
     

  3. #3
    SNOWMAN-X SNOWMAN-X ist offline Mitglied Bronze
    Registriert seit
    Jul 2004
    Ort
    Nürnberg
    Beiträge
    28
    Hallo,

    habe das jetzt mal so ausprobiert, bekomme aber die Meldung:
    "Cannot make a static reference to the non-static method getClass() from the type Object".

    Normalerweiße hat mir eclipse dann einfach die Option geboten, diese oder jene Variabel/Funktion als "static" zu deklarieren, aber hier mag eclipse nicht.

    Und um ganz ehrlich zu sein, ich kenne "static" nur aus C++ für statische Variablen, hab aber keine Ahnung wie sich das bei Java mit Funktionen und non-static, etc. verhält.

    Nagut, ich denke, ich muss da mal im Netz suchen und lernen, dann werd ich schon herausfinden, was ich falsch gemacht habe.

    Danke und Grüße
    Snowman
     

  4. #4
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    du befindest dich mit diesem Code innerhalb einer statischen Methode... da gibts kein this und deshalb klappt das auch mit getClass() nicht (implizit steht da ja auch this.getClass()). Du musst hier also die Klasse qualifizieren, Bubu.class.getResource(..) um realtiv zu ihr Ressourcen laden zu können.

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  5. #5
    SNOWMAN-X SNOWMAN-X ist offline Mitglied Bronze
    Registriert seit
    Jul 2004
    Ort
    Nürnberg
    Beiträge
    28
    Hallo,

    ok, das hab ich nun auch probiert:
    Code :
    1
    
    Image srLogo = new Image(mainDisplay, PlayerGUI.class.getResource("Shadowrun_logo.gif").toString());
    Was aber zu folgender Fehlermeldung führt:
    Code :
    1
    2
    3
    
    Exception in thread "main" org.eclipse.swt.SWTException: i/o error (java.io.FileNotFoundException:
    file:\D:\Programme\eclipse\Workspace\ShadowRun\bin\de\aphol\Shadowrun_logo.gif
    (Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch))
    Copy + Paste von dem angegeben Pfad in den Browser und ich sehe das Bild.
    Also der Pfad stimmt, nur irgendwas passt da trotzdem noch nicht ganz.

    Ich hab absolut keine Idee, wie man da jetzt weiterkommt.
     

  6. #6
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    also wenn das Bild im Verzeichnis images/bubu.png innerhalb des Jars liegt kannst du wie folgt darauf zugreifen:
    Code java:
    1
    
    Image image = new Image(Display.getDefault(),Bubu.class.getClassLoader().getResourceAsStream("http://www.tutorials.de/forum/images/bubu.png"));

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

Ähnliche Themen

  1. relativen in absoluten Pfad umwandeln
    Von Jango Qel Droma im Forum Java
    Antworten: 4
    Letzter Beitrag: 19.02.09, 12:04
  2. File: relativen Pfad setzten
    Von Saskia21 im Forum Java
    Antworten: 12
    Letzter Beitrag: 19.03.08, 15:22
  3. Relativen Pfad für eine File finden
    Von spaghettiBolognese im Forum Java
    Antworten: 2
    Letzter Beitrag: 09.06.07, 20:55
  4. Relativen Pfad der Anwendung ermitteln
    Von SeeSharpNewBee im Forum Java
    Antworten: 3
    Letzter Beitrag: 16.01.07, 10:03
  5. Relativen Pfad ermitteln
    Von Razorhawk im Forum PHP
    Antworten: 5
    Letzter Beitrag: 16.11.03, 14:22