3

アプリケーションのシステム トレイ アイコン イメージを変更したいだけです。私は2つのことをしました-

デフォルトのプログラムで URL を変更しました -

final TrayIcon trayIcon = new TrayIcon(createImage("images/Graph.png", "tray icon"));

2 回目の試行 -

Image img = Toolkit.getDefaultToolkit().getImage("images/Graph.png");
final TrayIcon trayIcon = new TrayIcon(img, "Application Name", popup);

どちらの場合もアプリケーションは起動しますが、画像は表示されません。空白のプレースホルダーです。私は何を間違っていますか?

4

2 に答える 2

4

images/Graph.pngjar にある画像の有効な URL ではありません。imgしたがって、 2回目の試行ではnullだと思います。

この方法をお勧めします:

//Get the URL with method class.getResource("/path/to/image.png")
URL url = System.class.getResource("/images/Graph.png");

//Use it to get the image
Image img = Toolkit.getDefaultToolkit().getImage(url);

final TrayIcon trayIcon = new TrayIcon(img, "Application Name", popup);

images/また、それがクラスパスにあることを確認する必要があります。

于 2013-07-19T11:41:56.207 に答える
2

問題は、画像が 内にあるため、または. jarを使用して画像ファイルを含める方法です。これを試してください。getResource()getResourceAsStream

 try {
    InputStream inputStream= ClassLoader.getSystemClassLoader().getResourceAsStream("/images/Graph.png");
//or getResourceAsStream("/images/Graph.png"); also returns inputstream

  BufferedImage img = ImageIO.read(inputStream);
    final TrayIcon trayIcon = new TrayIcon(img, "Application Name", popup);
}
   catch (IOException e) {}
于 2013-07-19T11:46:19.833 に答える