2013-05-29 53 views
0

我在Gimp2中创建了一个简单的图标并将其转换,所以我可以在标签上显示它。加载JLabel图标看起来变色

的图标是这样的:

public static final byte[] RedButton16 = 
{ 
    71, 73, 70, 56, 57, 97, 16, 0, 
    16, 0, -95, 2, 0, 0, 0, 0, 
    -1, 0, 0, -1, -1, -1, -1, -1, 
    -1, 33, -7, 4, 1, 10, 0, 2, 
    0, 44, 0, 0, 0, 0, 16, 0, 
    16, 0, 0, 2, 37, -108, 29, -87, 
    113, -67, -97, 28, -124, 6, 76, 42, 
    -18, -76, -6, -15, -82, 124, 96, 32, 
    -126, 101, 119, 106, 64, -118, -79, 79, 
    -27, 70, -57, -102, 2, -51, 76, -45, 
    119, 1, 0, 59 
}; 

的图标装入标签我用这个代码:

private ImageIcon getRedIcon() 
{ 
    if(MainPanel.mRedIcon == null) 
     MainPanel.mRedIcon = new ImageIcon(GUIIcons.RedButton16); 

    return MainPanel.mRedIcon; 
} 

foo() 
{ 
    mStatusLabel.setIcon(getRedIcon()); 
} 

我可以看到屏幕上的图标,但颜色是错误的。当我用外部查看器查看它时,它看起来像我创建它。红色或绿色(我有两个版本,都是GIF文件),都有同样的问题。我认为Alpha通道可能存在问题,但我不知道什么是错的,以及如何解决它,或者Java如何解释数据。我必须修复图像,还是必须在Imageloader上设置一些选项?

更新

我在这里上传的图像。我在Java应用程序中如何创建它们以及它们在屏幕上的外观。

Screenshot green

Correct green

Screenshot red

Correct red

+0

您是否可以发布图片,假设它看起来像什么,看起来像什么。它看起来很红...... – MadProgrammer

+0

是的,它应该看起来红。但是当我在java gui中加载它时,它看起来很透明。我尝试上传截图。 – Devolus

+0

我更新了我的问题,链接到图片 – Devolus

回答

2

假设你没犯错误的时候,你tranlated图像以源代码的字节数组,这看起来更像是摆渲染图标处于禁用状态。

我怀疑你禁用了标签某处有setEnabled(false),导致它呈现禁用状态。您可以通过在标签上设置文本轻松进行检查,如果标签被禁用,则显示幻影。

+0

AAAAHHH!多么愚蠢!你是对的,我在此之前使用了一个按钮,并禁用了它,并且将声明留在了。现在它起作用了! :) 谢谢! – Devolus