Avatar billede tama Nybegynder
24. marts 2004 - 11:00 Der er 7 kommentarer og
1 løsning

Hvordan man sætter et billede på en JLabel?

Jeg har det problem at jeg gerne vil sætte et billede ind på en JLabel og bagefter kunne køre mit program fra en jar fil.
Ved at sige:
label.setIcon(new ImageIcon("billede.png"));
kører det fint, bare ikke når man køre det som jar.

jeg fandt derfor følgende klasse som kan loade et billede som et URL. Problem er nu at jeg får en Image instans tilbage og ikke en Icon. Jeg har prøvet at typecaste lidt frem og tilbage, dog uden held...

public class ImageLoader
{
    public static Image getImage(String filNavn)
    {
        try
        {
            URL url = ImageLoader.class.getClass().getResource("/" + filNavn);
            return new ImageIcon(url).getImage();
        }
        catch (Exception e)
        {
            e.printStackTrace();
            return null;
        }
    }
}
Avatar billede tama Nybegynder
24. marts 2004 - 11:02 #1
Er der forresten nogle der kan sige hvad
new ImageIcon(url).getImage();
helt præcist gør!!!!!
Avatar billede _carsten Nybegynder
24. marts 2004 - 11:58 #2
1. minLabel.setIcon(new javax.swing.ImageIcon("C:\\sti\\til\\billede.gif"));
  eller du kan bruge en af JLabel's konstuktører til det.

2. Returnerer et image fra URL'en
Avatar billede tama Nybegynder
24. marts 2004 - 12:03 #3
1: Når jeg nu skriver at label.setIcon(new ImageIcon("billede.png")); ikke virker.
Hvorfor skulle minLabel.setIcon(new javax.swing.ImageIcon("C:\\sti\\til\\billede.gif")); så virke?????

2: Ja det havde jeg regnet ud. Jeg tænkte på syntaksen med (url).
Avatar billede _carsten Nybegynder
24. marts 2004 - 12:15 #4
Sorry - mit stupide svar, skyldes min stupide måde at læse dit spørgsmål på eller mangel på samme.

Hvis dit billede ligger i jar filen med den placering du angiver, ja så skal det virke
Avatar billede _carsten Nybegynder
24. marts 2004 - 12:26 #5
M.h.t. URL'en må det blive noget a la "http://www.tama.dk/billede.gif"
Avatar billede tama Nybegynder
24. marts 2004 - 12:27 #6
Det gør den desværre ikke. Den gør det når jeg bruger ImageLoader klassen, får en Image instans tilbage og Graphics til at tegne den med. Men det er det jeg helst vil undgå. Jeg vil gerne kunne tilføje den til en JLabel og få den til at tegne den. Det kræver dog bare at jeg kan få lavet den Image instans om til et Icon instans!
Avatar billede _carsten Nybegynder
24. marts 2004 - 12:34 #7
Hmmm - prøv lige den her

label.setIcon(new javax.swing.ImageIcon(getClass().getResource("/billede.gif")));
Avatar billede tama Nybegynder
24. marts 2004 - 12:46 #8
Man skal åbenbart bruge / og ikke \\ når man laver en getResource...
Men det virker!! Mange tak Carsten!
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