簡體   English   中英

找不到資源:duke.jpg

[英]Resource not found: duke.jpg

因此,我正在嘗試使用托盤菜單,然后就可以了。

final TrayIcon trayIcon = new TrayIcon(createImage("duke.jpg", "tray icon"));

方法createImage是

protected static Image createImage(String path, String description) {
    URL imageURL = TrayIconDemo.class.getResource(path);

    if (imageURL == null) {
        System.err.println("Resource not found: " + path);
        return null;
    } else {
        return (new ImageIcon(imageURL, description)).getImage();
    }
}

當我運行程序時,出現以下錯誤

Resource not found: duke.jpg
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: creating TrayIcon with null Image
    at java.awt.TrayIcon.<init>(Unknown Source)
    at misc.TrayIconDemo.createAndShowGUI(TrayIconDemo.java:76)
    at misc.TrayIconDemo.access$0(TrayIconDemo.java:68)
    at misc.TrayIconDemo$1.run(TrayIconDemo.java:63)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

這是我的文件夾的圖片,顯示圖像的位置。

http://i.stack.imgur.com/80tFY.png

我只想聲明一下,我找到了這個http://www.oracle.com/technetwork/articles/javase/systemtray-139788.html ,無論有沒有圖片,它都可以工作。 另外,該圖像還必須放置在源文件夾中,而不是.java所在的文件夾中才能顯示,因此我假設它必須存在於我的問題所涉及的原始代碼中。 因此,如果有人需要系統托盤幫助,只需檢查鏈接。

最簡單的方法是System.out.println(new File(".").getAbsolutePath())找出被視為根路徑的內容,然后調整文件的實際路徑。

我之所以使用它,是因為webapp(基於Servlet)與Java SE應用之間存在差異。

如果您像這樣更改此方法,它將起作用。

protected static Image createImage() {
            String path="bulb.gif";
            String description="";
            String imageURL = path;
            if (imageURL == null) {
                System.err.println("Resource not found: " + path);
                return null;
            } else {
                return (new ImageIcon(imageURL, description)).getImage();
            }
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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