title: Java UIManager - Change ComponentsStyle
body: <p>I want to change my componentstyle by using UIManager.</p>
  
  <p>For example:</p>
  
  <p>I click on a Button and the Button foreground changes from black to green. The same for a JCheckbox.....</p>
  
  <p>In my example the changes just work for the <code>Button.gradient</code>.... I get no update for <code>Button.foreground</code> and no update for the <code>JCheckbox</code>!</p>
  
  <p>Here my UIManagerClass:</p>
  
  <pre><code>  package components;
  
  import java.awt.Color;
  import java.util.ArrayList;
  import javax.swing.SwingUtilities;
  
  
  public class OwnUiManager {
  
      ButtonDemo Bd;
  
      OwnUiManager(ButtonDemo aThis) {
          Bd = aThis;
      }
  
      public void setNormal() {
          ArrayList&lt;Object&gt; gradients = new ArrayList();
          gradients.add(0.3);
          gradients.add(0.0);
          gradients.add(new Color(221, 232, 243));
          gradients.add(new Color(255, 255, 255));
          gradients.add(new Color(184, 207, 229));
          javax.swing.UIManager.put("RadioButton.background", Color.PINK);
          javax.swing.UIManager.put("Button.gradient", gradients);
          javax.swing.UIManager.put("Button.foreground", Color.PINK);
          SwingUtilities.updateComponentTreeUI(Bd);
      }
  
      public void setNightVision() {
          System.out.println("Tes");
          ArrayList&lt;Object&gt; gradients = new ArrayList();
          gradients.add(0.18f);
          gradients.add(0.17f);
          gradients.add(Color.BLACK);
          gradients.add(Color.DARK_GRAY);
          gradients.add(Color.DARK_GRAY);
          javax.swing.UIManager.put("RadioButton.background", Color.GRAY);
          javax.swing.UIManager.put("Button.gradient", gradients);
          javax.swing.UIManager.put("Button.foreground", Color.red);
  
          SwingUtilities.updateComponentTreeUI(Bd);
      }
  }
  </code></pre>
  
  <p>and here my Buttondemo/Main-Class:</p>
  
  <pre><code>package components;
  
  import java.awt.event.ActionEvent;
  import java.awt.event.ActionListener;
  import javax.swing.JButton;
  import javax.swing.JFrame;
  import javax.swing.JPanel;
  import javax.swing.JRadioButton;
  
  public class ButtonDemo extends JPanel
          implements ActionListener {
  
      protected JButton b1,b2;
      private JRadioButton b3;
  
      public ButtonDemo() {
  
          b1 = new JButton("ON");
          b1.addActionListener(this);
          add(b1);
          b2 = new JButton("OFF");
          b2.addActionListener(this);
          add(b2);
          //For Testing the Style
          b3=new JRadioButton("Test");
          add(b3);
      }
  
      public void actionPerformed(ActionEvent e) {
          OwnUiManager test = new OwnUiManager(this);
          if (e.getSource().equals(b1)) {
              test.setNormal();
          } else {
              test.setNightVision();
          }
      }
  
      private static void createAndShowGUI() {
          JFrame frame = new JFrame("ButtonDemo");
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          ButtonDemo newContentPane = new ButtonDemo();
          newContentPane.setOpaque(true); //content panes must be opaque
          frame.setContentPane(newContentPane);
          frame.pack();
          frame.setVisible(true);
      }
  
  
      public static void main(String[] args) {
          javax.swing.SwingUtilities.invokeLater(new Runnable() {
              public void run() {
                  createAndShowGUI();
              }
          });
      }
  }
  </code></pre>