04. januar 2005 - 17:04
Der er
17 kommentarer og 1 løsning
problemer med applet
jeg startede med at lave et grafisk vindue (frame), men har nu ændret det til en applet. men det der før virkede i et frame virker ikke i en applet... import java.applet.*; import java.lang.*; import java.awt.*; import java.util.*; public class rpg extends Applet { public int buffA = 1; public int buffB = 1; String name; public void paint(Graphics g) { MusseLytter lyt = new MusseLytter(); lyt.wIndow = this; this.addMouseListener(lyt); switch (buffB) { case 1: name = "forest"; break; case 2: name = "castle"; break; } Image bgImage = Toolkit.getDefaultToolkit().getImage("gfx\\"+name+"-"+buffA+".jpg"); g.drawImage(bgImage, 0, 0, this); g.setColor(new Color(255, 255, 255, 150)); g.fillRect(20, 19, 260, 162); g.fillRect(21, 185, 60, 12); g.fillRect(87, 185, 60, 12); g.fillRect(153, 185, 60, 12); g.fillRect(219, 185, 60, 12); g.setColor(new Color(0, 0, 0)); g.setFont(new Font("Lucida Console", Font.PLAIN, 12)); g.drawString("Prev", 23, 195); g.drawString("Next", 89, 195); g.drawString("Prev", 155, 195); g.drawString("Next", 221, 195); g.setColor(Color.white); g.drawString(name, 298 - 7 * name.length(), 198); } }
Annonceindlæg fra Cornerstones
04. januar 2005 - 17:09
#1
Jeg tror at det er getImage som driller. Du kan verificere det i Java Console i din browser. Du skal formentlig bruge den getImage som har en URL som argument.
04. januar 2005 - 17:36
#2
kan du komme med et lille eksempel, jeg kan ikke selv få det til at virke...
04. januar 2005 - 19:47
#3
Enig med Arne, har du prøvet følgende som burde fungere String path = getCodeBase().toString() + "gfx\\"+name+"-"+buffA+".jpg"; Image bgImage = Toolkit.getDefaultToolkit().getImage( path );
04. januar 2005 - 20:03
#4
Jeg ville have sagt: Image bgImage = Toolkit.getDefaultToolkit().getImage(new URL(getCodeBase() + "gfx\\" + name + "-" + buffA + ".jpg"));
04. januar 2005 - 20:45
#5
nu har jeg prøvet med en url, den kan fint kompileres, men den virker stadig ikke... men måske er det bare browseren der ikke henter den igen efter de rettelser jeg har lavet. Men jeg har ikke tid til at ordne det nu. import java.applet.*; import java.lang.*; import java.awt.*; import java.util.*; public class rpg extends Applet { public int buffA = 1; public int buffB = 1; String name; public void paint(Graphics g) { MusseLytter lyt = new MusseLytter(); lyt.wIndow = this; this.addMouseListener(lyt); switch (buffB) { case 1: name = "forest"; break; case 2: name = "castle"; break; } Image bgImage = Toolkit.getDefaultToolkit().getImage(new String(getCodeBase()+"gfx\\"+name+" "+buffA+".jpg")); g.drawImage(bgImage, 0, 0, this); g.setColor(new Color(255, 255, 255, 150)); g.fillRect(20, 19, 260, 162); g.fillRect(21, 185, 60, 12); g.fillRect(87, 185, 60, 12); g.fillRect(153, 185, 60, 12); g.fillRect(219, 185, 60, 12); g.setColor(new Color(0, 0, 0)); g.setFont(new Font("Lucida Console", Font.PLAIN, 12)); g.drawString("Prev", 23, 195); g.drawString("Next", 89, 195); g.drawString("Prev", 155, 195); g.drawString("Next", 221, 195); g.setColor(Color.white); g.drawString(name, 298 - 7 * name.length(), 198); } }
04. januar 2005 - 21:27
#6
Prøv lige: Image bgImage = Toolkit.getDefaultToolkit().getImage(new URL(getCodeBase()+"gfx\\"+name+" "+buffA+".jpg"));
05. januar 2005 - 17:21
#7
Arne - vi er selvfølgelig enige Jeg forventede bare at vi snakkede fil på disk eller i jar, da jannek_ek brugte stien ("gfx\\"+name+"-"+buffA+".jpg") og ikke en URL
05. januar 2005 - 17:30
#8
Hvilket iøvrigt minder mig om at fejlen selvfølgelig ligger her Skråstreg / i stedet for dobbelt backslash \\ Svaret til jannek_ek må altså være at en af nedenstående virker Image bgImage = Toolkit.getDefaultToolkit().getImage(new URL(getCodeBase() + "gfx/" + name + "-" + buffA + ".jpg")); eller String path = getCodeBase().toString() + "gfx/"+name+"-"+buffA+".jpg"; Image bgImage = Toolkit.getDefaultToolkit().getImage( path );
05. januar 2005 - 21:58
#9
Jep det skal naturligvis være / ikke \\. Jeg er ret sikker på at den skal downloades, da en applet normalt ikke har adgan til en disk fil. Og så skal den jo bruge URL.
05. januar 2005 - 22:03
#10
Jeg bryder mig egentlig ikke om hele tiden at være enige med andre mennesker, føler det lidt som rygklapperi, - men det er jeg jo igen. :-)
22. januar 2005 - 22:48
#11
jannek ?
24. januar 2005 - 17:25
#12
ja undskyld jeg ikke har svaret, men jeg er på efterskole (uden min computer), så jeg har ikke så meget mulighed får at prorammere. men jeg skal nok svare så snart jeg kommer hjem.
22. februar 2005 - 00:35
#13
ja så er jeg tilbage... og jeg ar testet jeres forslag, men uden held. Når jeg vil kompilere java filen, siger den: rpg.java:26: unreported exception java.net.MalformedURLException; must be caught or declared to be thrown Image bgImage = Toolkit.getDefaultToolkit().getImage(new URL(getCodeBase()+" gfx/"+name+" "+buffA+".jpg")); ^ 1 error og jeg har husket import java.net.*;
22. februar 2005 - 08:46
#14
Du skal have en: try { ... } catch(MalformedURLException e) { } omkring den kode
22. februar 2005 - 14:26
#15
ja nu virker det til dels... det hele vises korekt, men der kommer ikke noget billede... og jeg har tjekket at stien den er korekt... jeg går ud fra at getCodeBase() henviser til class filen (class og java filerne ligger det samme sted)
22. februar 2005 - 14:29
#16
hey nu virker det... jeg ved ikke hvorfor, men da jeg åbnede browseren virkede det fint... kom med et svar arne v
22. februar 2005 - 14:31
#17
ok
22. februar 2005 - 14:32
#18
så sir jeg mange tak for hjælpen... og undskyld forsinkelsen
Kurser inden for grundlæggende programmering