Java 带lwjgl的任务栏图标?

Java 带lwjgl的任务栏图标?,java,windows,windows-7,taskbar,lwjgl,Java,Windows,Windows 7,Taskbar,Lwjgl,我想为在Windows 7上运行的lwjgl进程添加一个任务栏图标 Display.setIcon成功更改窗口左上角的图标,但不更改任务栏中的图标 你怎么办 我的代码,类似于: ArrayList<ByteBuffer> byteBuffers = new ArrayList<ByteBuffer>(); byteBuffers.add( ImageHelper.loadImageAsIconImage("stickmanicon32x32.png") ); byteBu

我想为在Windows 7上运行的lwjgl进程添加一个任务栏图标

Display.setIcon成功更改窗口左上角的图标,但不更改任务栏中的图标

你怎么办

我的代码,类似于:

ArrayList<ByteBuffer> byteBuffers = new ArrayList<ByteBuffer>();
byteBuffers.add( ImageHelper.loadImageAsIconImage("stickmanicon32x32.png") );
byteBuffers.add( ImageHelper.loadImageAsIconImage("stickmanicon16x16.png") );
System.out.println( "taskbaricon result: " + Display.setIcon(byteBuffers.toArray(new ByteBuffer[]{})) );
ArrayList byteBuffers=new ArrayList();
添加(ImageHelper.loadImageAsIconImage(“stickmanicon32x32.png”);
添加(ImageHelper.loadImageAsIconImage(“stickmanicon16x16.png”);
System.out.println(“taskbaricon结果:+Display.setIcon(byteBuffers.toArray(newbytebuffer[]{}));

我也尝试添加一个40x40映像,但没有任何更改。

您应该看看提供许多Windows 7功能的Java库。

这段代码对我来说效果很好。不需要额外的LIB

ByteBuffer[] list = new ByteBuffer[2];
list[0] = createBuffer(ImageIO.read(new File("src/Images/Tests/icon16.png")));
list[1] = createBuffer(ImageIO.read(new File("src/Images/Tests/icon32.png")));
Display.setIcon(list);

这是我在闲逛了几个小时后发现的

我用了滑头

Display.setIcon(new ByteBuffer[] {
                    new ImageIOImageData().imageToByteBuffer(ImageIO.read(new File("res/game/gameIcon.png")), false, false, null),
                    new ImageIOImageData().imageToByteBuffer(ImageIO.read(new File("res/game/gameIcon.png")), false, false, null)
                    });

理想情况下,我想要一个不需要我付钱的解决方案。这看起来和我的代码一样。你在Windows7上试过这个吗?好的,我现在没有时间检查。我将把答案标记为已接受,因为没有人提出更好的答案。在我看来,有两种可能性:1。以前有一个bug,现在没有了,它在LWJGL2的最新版本中得到了修复。您使用的图标尺寸是16和32,而我使用的是32和16,即顺序不同。我相信上面的问题是您的toArray呼叫。您需要分配一个长度为2的ByteBuffer数组来容纳2个缓冲区。您正在创建一个空数组:“new ByteBuffer[]{}”应该是“new ByteBuffer[2]”