28. december 2008 - 18:56
Der er
7 kommentarer og 1 løsning
ikon til applikation
Hejsa Jeg vil gerne have, at min applikation har et ikon. Lige nu bruger jeg følgende kode: import java.awt.*; ... this.setIconImage(Toolkit.getDefaultToolkit().getImage("firkant.png")); og har så billedfilen i projektroden (og har også tidligere haft den i dist-mappen). Når jeg kører programmet fra NetBeans, virker det fint, men når jeg kører jar-filen, vises blot det sædvanlige java-logo. Gør jeg noget forkert? Tusind tak på forhånd Mvh Jonathan
Annonceindlæg fra GlobalConnect
28. december 2008 - 21:29
#1
Jeg tror at imaget skal hentes som resource fra jar filen.
28. december 2008 - 21:30
#2
Utestet: this.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("firkant.png")));
28. december 2008 - 21:31
#3
med firkant.jpg i roden af jar
28. december 2008 - 21:56
#4
Følgende testet som virkende her: import java.awt.Toolkit; import javax.swing.JFrame; import javax.swing.SwingUtilities; public class CustomIcon extends JFrame { public CustomIcon() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("Demo"); //setIconImage(Toolkit.getDefaultToolkit().getImage("C:\\bluedot.png")); setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("bluedot.png"))); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { JFrame f = new CustomIcon(); f.setVisible(true); } }); } }
28. december 2008 - 22:31
#5
hmmm, godt nok benyttes der "java.awt.EventQueue.invokeLater" i stedet for "SwingUtilities.invokeLater" i min kode, men ellers synes jeg mit minder utroligt meget om dit, og alligevel får jeg fejl. Kan lige vise et uddrag af koden samt fejlmeddelelse her. Håber du vil se på det. Fejlmeddelelse: run: Uncaught error fetching image: java.lang.NullPointerException at sun.awt.image.URLImageSource.getConnection(URLImageSource.java:99) at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:113) at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:240) at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172) at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136) BUILD STOPPED (total time: 10 seconds) ---------------------------------------------------------------------------------- uddrag af programkode: package firkantPakke; import java.awt.*; import java.awt.Toolkit; import javax.swing.JFrame; import javax.swing.SwingUtilities; /** * * @author Ejer */ public class FirkantGUI extends javax.swing.JFrame { private int spillerunde = 1; private int spillertur = 1; private String spiller1tekst; private String spiller2tekst; private String spiller3tekst; private boolean pointAngivet = false; private boolean spilAngivet = false; /** Creates new form FirkantGUI */ public FirkantGUI() { initComponents(); this.setSize(561, 525); this.setLocationRelativeTo(null); //this.setIconImage(Toolkit.getDefaultToolkit().getImage("firkant.png")); this.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("firkant.png"))); spiller1tekst = spiller1TextField.getText(); spiller2tekst = spiller2TextField.getText(); spiller3tekst = spiller3TextField.getText(); fane1TabbedPane.setEnabledAt(0, false); fane1TabbedPane.setEnabledAt(1, false); } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new FirkantGUI().setVisible(true); } }); }
28. december 2008 - 22:46
#6
Ligger firkant.jpg i din classpath ? D.v.s. i roden af en jar eller et dir som er i classpath ?
28. december 2008 - 23:05
#7
nu ligger den i mappen src\firkantPakke, og det virker! tusind tak for hjælpen. du lægger bare et svar
28. december 2008 - 23:09
#8
svar
Kurser inden for grundlæggende programmering