2013-05-29 47 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