2013-04-30 208 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