如何更改Java中的默认应用程序图标?

我正在使用NetBeans,试图将熟悉的Java咖啡杯图标更改为已保存在jar文件的资源目录中的png文件。 我发现许多不同的网页声称他们有一个解决scheme,但到目前为止,他们都没有工作。

这里是我现在(忽略try-catch块):

URL url = new URL("com/xyz/resources/camera.png"); Toolkit kit = Toolkit.getDefaultToolkit(); Image img = kit.createImage(url); getFrame().setIconImage(img); 

包含此代码的类位于com.xyz包中,如果有任何区别的话。 该类还扩展了JFrame。 此代码在第一行中引发MalformedUrlException。

任何人有一个解决scheme的作品?

 java.net.URL url = ClassLoader.getSystemResource("com/xyz/resources/camera.png"); 

可能或不需要path前面的“/”。

你可以简单地去Netbeans,在devise视图中,转到JFrame属性,select图标图像属性,使用“自定义代码”select设置表单的iconImage属性,然后在Form.SetIconImage()函数中input以下代码:

 Toolkit.getDefaultToolkit().getImage(name_of_your_JFrame.class.getResource("image.png")) 

不要忘记导入:

 import java.awt.Toolkit; 

在源代码中!

或者将图像放置在相对于类的位置,并且不需要string本身的所有包/path信息。

 com.xyz.SomeClassInThisPackage.class.getResource( "resources/camera.png" ); 

这样,如果您将该类移动到不同的包中,则不必查找所有string,只需移动该类及其资源目录即可。

  /** Creates new form Java Program1*/ public Java Program1() Image im = null; try { im = ImageIO.read(getClass().getResource("/image location")); } catch (IOException ex) { Logger.getLogger(chat.class.getName()).log(Level.SEVERE, null, ex); } setIconImage(im); 

这是我在netbeans中使用的graphics用户界面,它完美的工作

试试这个后写

 initcomponents(); setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("Your image address"))); 

在扩展javax.swing.JFrame的类中,使用方法setIconImage

 this.setIconImage(new ImageIcon(getClass().getResource("/resource/icon.png")).getImage()); 

你应该定义各种大小的图标,像Ubuntu的Windows和Linux发行版在任务栏和Alt-Tab中使用不同的图标。

 public static final URL ICON16 = HelperUi.class.getResource("/com/jsql/view/swing/resourceshttp://img.dovov.comsoftware/bug16.png"); public static final URL ICON32 = HelperUi.class.getResource("/com/jsql/view/swing/resourceshttp://img.dovov.comsoftware/bug32.png"); public static final URL ICON96 = HelperUi.class.getResource("/com/jsql/view/swing/resourceshttp://img.dovov.comsoftware/bug96.png"); List<Image> images = new ArrayList<>(); try { images.add(ImageIO.read(HelperUi.ICON96)); images.add(ImageIO.read(HelperUi.ICON32)); images.add(ImageIO.read(HelperUi.ICON16)); } catch (IOException e) { LOGGER.error(e, e); } // Define a small and large app icon this.setIconImages(images); 

例:

 URL imageURL = this.getClass().getClassLoader().getResource("Gui/icon/report-go-icon.png"); ImageIcon iChing = new ImageIcon("C:\\Users\\RrezartP\\Documents\\NetBeansProjects\\Inventari\\src\\Gui\\icon\\report-go-icon.png"); btnReport.setIcon(iChing); System.out.println(imageURL); 

内部框架构造函数

 try{ setIconImage(ImageIO.read(new File(".http://img.dovov.comicon.png"))); } catch (Exception ex){ //do something }