2013-04-30 107 views
1

我有無法覆蓋Nimbus屬性

UIDefaults defaults = UIManager.getLookAndFeelDefaults(); 
defaults.put("text",Color.GREEN);` 

該文本仍然是黑色的,但爲什麼?

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


public class test999 extends JFrame { 
    private JLabel jLabel1 = new JLabel(); 

    public test999(String title) { 
    super(title); 
    try { 
     for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { 
     if ("Nimbus".equals(info.getName())) { 
      UIManager.setLookAndFeel(info.getClassName()); 
      UIDefaults defaults = new UIDefaults(); 
      defaults.put("text",new Color(255,0,0)); 
      break; 
     } 
     } 
    } catch (Exception e) { 
     // If Nimbus is not available, you can set the GUI to another look and feel. 
    } 
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); 
    int frameWidth = 300; 
    int frameHeight = 300; 
    setSize(frameWidth, frameHeight); 
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); 
    int x = (d.width - getSize().width)/2; 
    int y = (d.height - getSize().height)/2; 
    setLocation(x, y); 
    setResizable(false); 
    Container cp = getContentPane(); 
    cp.setLayout(null); 

    jLabel1.setBounds(72, 72, 147, 57); 
    jLabel1.setText("text"); 
    cp.add(jLabel1); 

    setVisible(true); 
    } 
    public static void main(String[] args) { 
    new test999("test999"); 
    } 
} 

回答

1

這不是默認UI如何工作的:"text"是不是一個有效的名稱,並且組員可以看到你的defaults實例。相反,嘗試

jLabel1.setForeground(Color.red); 

另外,不要使用setBounds();使用合適的layout manager

附錄:如圖所示here,"text"是一個有效的原色密鑰,而不是組件密鑰。

我...要...覆蓋nimbus默認值。

在至多L & F公司,你可以指定"Label.foreground"鍵:

UIManager.put("Label.foreground", Color.red); 

在雨雲你要做的this

UIManager.put("text", Color.red); 
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); 
+0

我不想設置字體/文本顏色每個組件只有一行,但是會覆蓋nimbus的默認值,現在可以使用:http://stackoverflow.com/a/2576230/753676但是僅限於文本而不是進度條 – 2013-04-30 11:37:35

+0

我已經說明了以上所述。 – trashgod 2013-04-30 11:47:08

+0

不是這個和我的初始文章中的default.put相同嗎? – 2013-04-30 11:53:06