Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 系统托盘上的空白图标_Java_Trayicon - Fatal编程技术网

Java 系统托盘上的空白图标

Java 系统托盘上的空白图标,java,trayicon,Java,Trayicon,我试图在系统托盘中添加一个图标,但是,当我运行应用程序时,图标是空白的 我的项目结构如下: root/ libs/ ... src/ com/ projname/ logic/ ... ui/ MyClass.java ... res/ icon.png 我试图在MyClass.java中添加图标,如下所示: private void addToSyste

我试图在系统托盘中添加一个图标,但是,当我运行应用程序时,图标是空白的

我的项目结构如下:

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(真)

JavaDoc:

public void设置图像自动大小(布尔自动大小)

设置“自动大小”属性。“自动大小”确定托盘是否正确 图像自动调整大小以适合为图像分配的空间 在托盘上。默认情况下,自动大小属性设置为false

如果“自动大小”为false,并且图像大小与托盘图标不匹配 空间中,图像按空间内的状态绘制-如果大于 分配的空间将被裁剪

如果“自动大小”为,则图像将拉伸或收缩适合托盘 图标空间


Image=newImageIcon(MyClass.class.getResource(“/icon.png”)).getImage()@JoopEggen没有解决它-同样的问题。是的,您使用了javadoc示例<代码>trayIcon.setImageAutoSize(真)也许吧。@JoopEggen谢谢,这就解决了它!