0

私は NetBeans に慣れ、Java を使った最初のチュートリアルを行っています。

システム トレイ アイコンが表示されません。プロジェクト ファイル内の間違った場所にアイコンを配置したのではないかと思います。SysTray.java 内の私のコードは次のとおりです。

package systray;

import java.awt.*;

public class SysTray {

    public static void main(String[] args) {

        Runnable runner;
        runner = new Runnable() {

    public void run() {
      if (SystemTray.isSupported()) {
          SystemTray tray = SystemTray.getSystemTray();
          Image image = Toolkit.getDefaultToolkit().getImage("MyIcon.png");
          PopupMenu popup = new PopupMenu();
          MenuItem item = new MenuItem("A MenuItem");
          popup.add(item);
          TrayIcon trayIcon = new TrayIcon(image, "The Tip Text", popup);
          try {
            tray.add(trayIcon);
          } catch (AWTException e) {
            System.err.println("Can't add to tray");
          }
        } else {
          System.err.println("Tray unavailable");
        }

      }
    };
    EventQueue.invokeLater(runner);
  }
}

「MyIcon.png」をSysTray.java(メイン)と同じディレクトリに配置しました。しかし、実際にはそこに配置する必要があると思いました。

ディレクトリ構造は次のとおりです。

システムトレイ/

  • ソースパッケージ/ - systray/ - SysTray.java
  • ソースパッケージ/ - systray/ - MyIcon.png
  • 図書館/

システム トレイのアイコンに空白が表示され、マウスをホバーすると「ヒント テキスト」が表示されます。しかし、アイコンがありません。

イメージが見つからないというエラーも NetBeans から受け取りませんでした。だから、私は立ち往生しています

4

2 に答える 2

0

「C:\MyProjects\projectname\packagename\MyIcon.png」など、画像への絶対パスを指定するだけで、うまくいくようにすることができます。

ただし、必要なのは、ファイル システムから直接ではなく、リソースとしてイメージをロードすることです (jar としてデプロイする場合)。このような:

String imageLocation = "/systray/MyIcon.png";
URL imageURL = this.getClass().getResource(imageLocation);
Image image = Toolkit.getDefaultToolkit().getImage(imageURL);

リソースフォルダ (画像、オーディオなど) を追加する方法については、NetBeans の「リソース」フォルダから画像を正しく取得する方法を参照してください。

于 2012-11-11T18:47:44.110 に答える