Avatar billede fuddi12 Nybegynder
13. juli 2003 - 16:15 Der er 18 kommentarer og
1 løsning

Kan ikke få fat i Image fra en jar-fil

Jeg har denne kode til at få fat i nogle Image:
public Image cardImage(String s)
  {           
    Image tmpCard = getImage(getCodeBase(),"cards\\" + s + ".gif");       
    return tmpCard;
  }
Min Poker.html fil ser sådanne ud:
APPLET CODE="PokerApplet.class" archive="Poker.jar" HEIGHT="400" WIDTH="390">
    </APPLET>   
Jeg kan godt få bilederne frem når jeg bruger JDeveloper men ikke når det ligger på min hjemmeside:
http://home19.inet.tele.dk/fuddi/applet/Poker/Poker.html

Jeg har prøvet med at skriver CodeBase="http://home19.inet.tele.dk/fuddi/applet/Poker/Poker.jar" det virker heller ikke, for så kan Poker.html ikke finde min PokerApplet.class. Er der nogen som kan hjælpe mig?
Avatar billede fuddi12 Nybegynder
13. juli 2003 - 16:20 #1
nej undskyld det virker heller ikke når jeg prøver JDevopler...Kun hvis jeg  har Card image for sig selv, ikke hvis jeg kun køre jar-filen
Avatar billede fuddi12 Nybegynder
13. juli 2003 - 16:20 #2
JDeveloper! hehe
Avatar billede arne_v Ekspert
13. juli 2003 - 16:48 #3
Prøv med:

getImage(getClass().getClassLoader().getResource("cards\\" + s + ".gif"))
Avatar billede arne_v Ekspert
13. juli 2003 - 16:49 #4
eller:

getImage(getClass().getResource("cards\\" + s + ".gif"))
Avatar billede fuddi12 Nybegynder
13. juli 2003 - 17:04 #5
jeg får en fejl ved getImage(getClass().getClassLoader().getResource("cards\\" + s + ".gif")):
java.lang.NullPointerException

    java.awt.Image PokerApplet.cardImage(java.lang.String)
Jeg får også en fejl ved den anden:
java.lang.NullPointerException

    void sun.awt.image.URLImageSource.<init>(java.net.URL)
Avatar billede arne_v Ekspert
13. juli 2003 - 17:07 #6
Prøv så og erstat \\ ned /.
Avatar billede fuddi12 Nybegynder
13. juli 2003 - 17:14 #7
mener du sådanne : Image tmpCard = getImage(getClass().getResource("cards/" + s + ".gif"));
jeg har også prøvet : Image tmpCard = getImage(getClass().getResource("cards/." + s + ".gif"));
Jeg for den samme fejl...
Avatar billede arne_v Ekspert
13. juli 2003 - 17:20 #8
Den første.
Avatar billede fuddi12 Nybegynder
13. juli 2003 - 17:22 #9
ok jeg for desværre den samme fejl igen :( det er sku lidt mærkeligt...
Avatar billede arne_v Ekspert
13. juli 2003 - 17:23 #10
Sidste udvej er:

getImage(new URL("http://home19.inet.tele.dk/fuddi/applet/Poker/cards/" + s + ".gif")
Avatar billede arne_v Ekspert
13. juli 2003 - 17:27 #11
Burde kunne laves mere elegant som:

getImage(new URL(getDocumentBase() + "cards/" + s + ".gif")
Avatar billede arne_v Ekspert
13. juli 2003 - 17:27 #12
NB: der mangler vist en parentes til sidst. Sorry.
Avatar billede fuddi12 Nybegynder
13. juli 2003 - 17:34 #13
Error(148,36): unreported exception: java.net.MalformedURLException; must be caught or declared to be thrown
Hvordan er det nu man gør med den fejl?
Avatar billede arne_v Ekspert
13. juli 2003 - 17:37 #14
Du skal enten have

... dinmetode(...) throws MalformedURLException {
}

eller:

... dinmetode(...) {
    try {
      ...
    } catch (MalformedURLException ex) {
      ...
    }
}
Avatar billede fuddi12 Nybegynder
13. juli 2003 - 17:38 #15
try
      {
        Image tmpCard = getImage(new URL(getDocumentBase() + "cards/" + s + ".gif"));
      }
    catch(MalformedURLException e){}                     
    return tmpCard;

Nu for jeg denne fejl...
Error(153,12): incompatible types; found: Card[], required: java.awt.Image
Avatar billede arne_v Ekspert
13. juli 2003 - 17:40 #16
tmpCard er et Image - den påtsår at den metode skal returnere Card[] !?
Avatar billede fuddi12 Nybegynder
13. juli 2003 - 19:26 #17
Tak jeg har fundet ud af det nu :)
Avatar billede fuddi12 Nybegynder
13. juli 2003 - 19:26 #18
skriv lige så jeg kan give dig nogle point
Avatar billede arne_v Ekspert
13. juli 2003 - 19:31 #19
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester