2011-10-27 14 views
-1

我做了一個GUI我的程序和使用Java圖形用戶界面的顏色不負載

UIManager.put("Button.background", new Color(0,0,0)); 
UIManager.put("JButton.background", new Color(0,0,0)); 

讓按鈕顯示爲黑色。不幸的是,這有時不起作用。在不修改代碼的情況下,它會在我運行一次而不會再工作時起作用。

下面的圖像是我運行它幾次後在同一個程序中的同一個按鈕。這發生在我運行該程序約四分之一的時間。

Buttons (左鍵是正確的,正確的是什麼有時會發生,同時運行)

另外,其他像

UIManager.put("control", new Color(15,0,0)); 

正確載入。從來沒有問題,它是在同一時間和相同的格式加載。

編輯:下面是一個示例代碼,其中的背景和其他東西都不加載按鈕的顏色。它們以相同的方式加載,沒有編譯或運行錯誤。

import java.awt.*; 
import javax.swing.*; 
import javax.swing.UIManager.*; 

public class gtst 

{ 

public static void main(String[] args) throws Exception 
{ 

    UIManager.put("Button.background", new Color(1,1,1)); 
    UIManager.put("JButton.background", new Color(1,1,1)); 
    UIManager.put("control", new Color(0,0,0)); 
    UIManager.put("text", new Color(255,220,0)); 

    Frame batFrame = new JFrame("nananananna Batman!"); 

    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) 
    { 
     if ("Nimbus".equals(info.getName())) { 
      UIManager.setLookAndFeel(info.getClassName()); 
      break; 
     } 
    } 

    String username = JOptionPane.showInputDialog(batFrame, "Enter something...:"); 
    } 
} 
+2

您需要編寫一個小而簡潔的工作代碼示例來演示此問題並將其發佈到此處。通常當你這樣做時,你甚至會一路解決你自己的問題。 –

+0

我沒有那樣做過嗎?代碼就在那裏......我描述了這個問題,你知道的一切都是我所知道的...... :(我是一個begginer所以我不是100%確定是什麼原因導致了這種情況發生。 – Cody

+0

這是怎麼回事一個正確的給定,你想按鈕顏色(0,0,0)黑色? – NickLH

回答

0

後不停試錯的日子裏,我想通了,顯然我在程序的MySQL連接是造成問題。如果MySQL連接在程序開始時啓動並且顏色變化太大,則會導致某種問題(可能會延遲?),並且顏色不會始終加載。也許這是MySQL驅動程序或其他問題,不確定,但要解決它,我只是在它需要連接而不是在程序啓動時連接到MySQL。

我不確定爲什麼在我提供的示例中根本沒有加載顏色。

0

我通常這樣做是讓按鈕作爲一個單獨的JButton變量,然後將其添加到我的面板。然後設置按鈕的顏色我使用的代碼:

myButton.setBackground(Color.BLACK); 

這通常是卓有成效的。

+0

啊,但它使用預先製作的框架和分開做每一件事情將是很多代碼和效率稍低:( – Cody

+0

哦,你使用netbeans來做到這一點?如果是這樣,那麼你可以只是 – Globmont

0

嘗試使用下面的代碼,你已在UIManager的變化後:

SwingUtilities.updateComponentTreeUI(<your_root_ui_componenet>); 
+0

我不認爲這樣做:(得到這4個錯誤: '背景在java.awt.Component中不公開;不能從外部包訪問'(對於Button.background/JButton.background)。javax.swing.SwingUtilities中的'updateComponentTreeUI(java.awt.Component)不能應用於(java.awt.Color)'(對於兩個按鈕的updateComponentTreeUI):( – Cody

+0

所以你做了SwingUtilities.updateComponentTreeUI(batFrame );在你展示OptionPane> –

+0

之前哦,不,我正在做其他事情,以及它編譯和運行沒有錯誤,但它仍然沒有加載顏色:( – Cody