做Java swing的时候,当使用substance改变外观后所有组件和窗体都可以美化,例如:添加这句代码后所有窗体和组件都将变成浅蓝色
UIManager.setLookAndFeel(new SubstanceOfficeBlue2007LookAndFeel());现在我的问题是,包括JTextField、JTextPane、JPanel都变成浅蓝色的了,我希望输入框JTextField和JTextPane的颜色是白色的,但是不论怎么设置都没用,好像Color.white 和 new Color(255,255,255)都已不是白色了如果我需要个别JPanel、JTextPane、JTextField的颜色是白色的该怎么办?如果需要重写组件请给个参考例子,谢谢!!

解决方案 »

  1.   

    使用
    UIManager.put("TextField.background",Color.WHITE);
    如何
      

  2.   

    JTextField.setOpaque(true);
    JTextPane.setOpaque(true);
    JPanel.setOpaque(true);
      

  3.   

    substance是开源的
    楼主可以尝试重载substance的UI中的paint方法
      

  4.   

    可以确定的一点是 substance 用 Highlighter 实现了很多效果
    因为我写的一个组件,用了substance之后
    我用Highlighter实现的东西全都被substance的效果覆盖了
      

  5.   

    自定义你那些特别的JPanel、JTextPane、JTextField,重写paintComponent(Grahics g)方法!