簡體   English   中英

如何更改 Java 中的默認應用程序圖標?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM