簡體   English   中英

系統托盤上的空白圖標

[英]Blank icon on system tray

我試圖在系統托盤中添加一個圖標,但是,當我運行該應用程序時,該圖標為空白。

我的項目結構如下:

root/
  libs/
    ...
  src/
    com/
      projname/
        logic/
          ...
        ui/
          MyClass.java
          ...
  res/
    icon.png

我試圖在MyClass.java中添加圖標,如下所示:

private void addToSystemTray() throws AWTException {

    if (!SystemTray.isSupported()) {
        return;
    }

    // get the SystemTray instance
    SystemTray tray = SystemTray.getSystemTray();

    // load an image
    Image image = Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("icon.png"));

    // construct tray icon
    TrayIcon trayIcon = new TrayIcon(image, "My Project");

    // add the tray image
    tray.add(trayIcon);
}

我在IntelliJ上將res /文件夾標記為Resources Root ,並且還構建了.jar來檢查是否向其添加了圖標-確實如此。

我究竟做錯了什么?

您的圖像很可能大於任務欄圖標的大小並被裁剪。 這就是為什么您將圖標顯示為空白的原因。 因此,您必須設置trayIcon.setImageAutoSize(true);

JavaDoc的:

public void setImageAutoSize (布爾型自動調整大小)

設置自動調整大小屬性。 自動調整大小確定是否自動調整紙盤圖像的大小以適合為紙盤上的圖像分配的空間。 默認情況下 ,auto-size屬性設置為false

如果auto-size為false,並且圖像尺寸與進紙匣圖標空間不匹配,則會在該空間內原樣繪制圖像-如果大於分配的空間,則會對其進行裁剪

如果auto-size是true ,則將圖像拉伸或縮小適合進紙匣圖標的空間。

暫無
暫無

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

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