更改LWJGL图标(任务栏和程序)

时间:2014-08-23 21:34:34

标签: java image lwjgl javax.imageio bytebuffer

我试图更改任务栏和程序的图标,但是当我使用代码时,我的图标只是默认的程序图标。这是我的代码:

public ByteBuffer loadIcon(String filename) throws IOException {
    BufferedImage image = ImageIO.read(getClass().getResource(filename));
    byte[] imageBytes = ((DataBufferByte) image.getRaster().getDataBuffer()).getData();
    return ByteBuffer.wrap(imageBytes);
}

在我的初始化中,我打电话给:

Display.setIcon(new ByteBuffer[] {
            loadIcon("/icon16.png"),
            loadIcon("/icon32.png")
        });

这里有什么问题?

修改

也试过这个。

public void setIcons(String[] refs) throws SlickException {
    ByteBuffer[] bufs = new ByteBuffer[refs.length];
    for (int i=0;i<refs.length;i++) {
        LoadableImageData data;
        boolean flip = true;

        if (refs[i].endsWith(".tga")) {
            data = new TGAImageData();
        } else {
            flip = false;
            data = new ImageIOImageData();
        }

        try {
            bufs[i] = data.loadImage(getClass().getResourceAsStream(refs[i]), flip, false, null);
        } catch (Exception e) {
            Log.error(e);
            throw new SlickException("Failed to set the icon");
        }
    }

    Display.setIcon(bufs);
}

setIcons(new String[] {
                "/icon16.png",
                "/icon24.png",
                "/icon32.png"
        });

还试过没有icon24.png。两者都不起作用。

0 个答案:

没有答案