24. marts 2004 - 11:00Der 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; } } }
Manuelle og semi-automatiske strategier for identitetsstyring virker - lige indtil nogen beder om dokumentation. For at undgå denne fare har DKTV taget kontrol over sin identitets- og adgangsstrategi.
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).
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!
Man skal åbenbart bruge / og ikke \\ når man laver en getResource... Men det virker!! Mange tak Carsten!
Synes godt om
Ny brugerNybegynder
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.