![](/img/trans.png)
[英]How can I change the default icon of a java application on a mac using netbeans?
[英]How do I change the default application icon in Java?
我正在使用 NetBeans,試圖將熟悉的 Java 咖啡杯圖標更改為一個 png 文件,該文件已保存在 jar 文件的資源目錄中。 我發現許多不同的網頁聲稱他們有解決方案,但到目前為止它們都不起作用。
這是我目前所擁有的(不包括 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。
任何人都有有效的解決方案?
java.net.URL url = ClassLoader.getSystemResource("com/xyz/resources/camera.png");
路徑前面可能需要也可能不需要“/”。
您可以簡單地轉到 Netbeans,在設計視圖中,轉到JFrame
屬性,選擇圖標圖像屬性,使用“自定義代碼”選擇設置表單的iconImage
屬性,然后在Form.SetIconImage()
函數中放入以下代碼:
Toolkit.getDefaultToolkit().getImage(name_of_your_JFrame.class.getResource("image.png"))
不要忘記導入:
import java.awt.Toolkit;
在源代碼中!
試試這個寫后
initcomponents();
setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("Your image address")));
或者將圖像放在相對於類的位置,並且您不需要字符串本身中的所有包/路徑信息。
com.xyz.SomeClassInThisPackage.class.getResource( "resources/camera.png" );
這樣,如果您將類移動到不同的包,則不必查找所有字符串,只需移動類及其資源目錄即可。
/** 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 的 GUI 中使用的,它運行良好
在擴展javax.swing.JFrame
的類中,使用方法setIconImage
。
this.setIconImage(new ImageIcon(getClass().getResource("/resource/icon.png")).getImage());
您應該定義各種大小的圖標,Windows 和 Linux 發行版(如 Ubuntu)在任務欄和 Alt-Tab 中使用不同的圖標。
public static final URL ICON16 = HelperUi.class.getResource("/com/jsql/view/swing/resources/images/software/bug16.png");
public static final URL ICON32 = HelperUi.class.getResource("/com/jsql/view/swing/resources/images/software/bug32.png");
public static final URL ICON96 = HelperUi.class.getResource("/com/jsql/view/swing/resources/images/software/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);
你可以試試這個,它工作得很好:
` ImageIcon icon = new ImageIcon(".//Ressources//User_50.png");
this.setIconImage(icon.getImage());`
內部框架構造函數
try{
setIconImage(ImageIO.read(new File("./images/icon.png")));
}
catch (Exception ex){
//do something
}
而且,如果我沒有JFrame,那么由於我的應用程序是控制台應用程序? 如何放置圖標?
例子:
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.