Avatar billede fireworld Nybegynder
09. oktober 2001 - 16:33 Der er 11 kommentarer og
1 løsning

Bilelde?

Hvordan sætter man et billede ind i java??


altså med GetImage?
Avatar billede ladyhawke Novice
09. oktober 2001 - 19:22 #1
Hvorfor nødvendigvis GetImage() ?

Hvis du vil have et billede fra en fil så kan dette bruges:

JLabel ImageLabel = new JLabel();

ImageIcon II = new ImageIcon(filnavn.jpg);

ImageLabel.setIcon(II);

men, det er ikke det du vil???
Avatar billede bumle90 Nybegynder
09. oktober 2001 - 19:24 #2
Ladyhawke grunden til at han vil bruge getimage er fordi det er en applet. JLabel er jo en swing component.
Avatar billede ladyhawke Novice
09. oktober 2001 - 19:31 #3
Hvorfor så ikke skrive det i starten af spørgsmålet, så man bedre kan svare....

Jvf. min bog skulle det være således:

Image image = new Image();
image.getImage(getCodeBase(), filnavn.jpg);

det kan så adderes til en MediaTracker eller hvad du nu skal bruge...

Jeg håber det kan hjælpe...
Avatar billede fireworld Nybegynder
09. oktober 2001 - 19:43 #4
hmmmm


har prøvet sådan her

Image baggrund = new Image();
baggrund.getImage(getCodeBase(),\"webcam.jpg\");



og så en i paint

g.drawImage(image,0,0,this);

men den giver denne error

test.java:9: java.awt.Image is abstract; cannot be instantiated
Image baggrund = new Image();
                ^
test.java:14: cannot resolve symbol
symbol  : method getImage  (java.net.URL,java.lang.String)
location: class java.awt.Image
        baggrund.getImage(getCodeBase(),\"webcam.jpg\");
                ^
2 errors

Avatar billede lbhansen Nybegynder
09. oktober 2001 - 19:51 #5
det er fordi at getImage returnerer in implementering af Image. Så du skal lave
Image baggrund = getImage(getCodeBase(),\"webcam.jgp\");
Avatar billede ladyhawke Novice
10. oktober 2001 - 10:21 #6
Undskyld typo fra min side...
som lbhansen skriver, skal være således:

Image baggrund = new Image();
baggrund = getImage(getCodeBase(),\"webcam.jpg\");
Avatar billede logical Nybegynder
10. oktober 2001 - 14:25 #7
ladyhawke>> Det er new Image(), der ikke kan lade sig gøre. Lav erklæring og tildeling i samme linie som lbhansen foreslår.
Avatar billede ladyhawke Novice
10. oktober 2001 - 14:36 #8
OK, jeg har ikke testet, blot kigget i min bog, hvor der var et eksempel (det bugte et Image array). Jeg fik det åbenbart dekomponeret forkert. Jeg har ikke arbejdet med applets, så jeg har ikke overvejet den problemstilling.

De gange jeg har brugt Image er jeg ikke stødt i problemer, så jeg må have gjort det rigtigt i de tilfælde...
Avatar billede ladyhawke Novice
10. oktober 2001 - 14:44 #9
NB I min bog (Java Prgrammers Reference) står der følgende kode:

Image[] img = new Image[];
String[] imageNames = {\"fil1.jpg\",\"fil2.jpg\",\"fil3.jpg\",\"fil4.jpg\"}
...
for (int i = 0; i < 4; i++){
  img[i]=getImage(getCodeBase(),imageNames[i]);
  ...
}

...
Avatar billede logical Nybegynder
10. oktober 2001 - 14:47 #10
Yep, det er tilladt at lave et array, som kan indeholde Image objekter :-)
Avatar billede fireworld Nybegynder
10. oktober 2001 - 15:35 #11
hmmmm det virker nå jeg gør sådan her

public void paint(Graphics g)
    {
    Image baggrund = getImage(getCodeBase(),\"webcam.jpg\");
    g.drawImage(baggrund,0,0,this);
    }



men ikke hvis jeg flytter i class\'ens root... for at jeg senere vil kunne ændre i billedet? why not?
Avatar billede lbhansen Nybegynder
10. oktober 2001 - 18:29 #12
hvad mener du med at flytte i classens root?
giv lige et eksempel.

Nogle gange kan der gå ged i den, fordi man prøver på at tegne et billede, som ikke er loaded endnu.

I dokumentationen findes der et eksempel på hvordan du bruger en MediaTracker til at vente på at dit billede er loaded.
http://java.sun.com/j2se/1.3/docs/api/java/awt/MediaTracker.html

Du kan evt. loade billedet i din init() metode, som eksemplet gør
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