title: error UIDefaults.getUI() failed in my Look and feel
body: <p>I am developing a Look and Feel in Java. When I apply it to my program, I get this exception/error:</p>
  
  <pre><code>UIDefaults.getUI() failed: no ComponentUI class for: javax.swing.JButton[,0,0,0x
  0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=0,maximumSize=,minimumSize
  =,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=null,pa
  intBorder=true,paintFocus=true,pressedIcon=,rolloverEnabled=false,rolloverIcon=,
  rolloverSelectedIcon=,selectedIcon=,text=test1111,defaultCapable=true]
  java.lang.Error
          at javax.swing.UIDefaults.getUIError(UIDefaults.java:711)
          at javax.swing.MultiUIDefaults.getUIError(MultiUIDefaults.java:133)
          at javax.swing.UIDefaults.getUI(UIDefaults.java:741)
          at javax.swing.UIManager.getUI(UIManager.java:989)
          at javax.swing.JButton.updateUI(JButton.java:128)
          at javax.swing.AbstractButton.init(AbstractButton.java:2149)
          at javax.swing.JButton.&lt;init&gt;(JButton.java:118)
          at javax.swing.JButton.&lt;init&gt;(JButton.java:91)
          at com.mypackage.mylaf.MyLookAndFeelTest.main(MyLookAndFeelTest.java:7)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
  java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
  sorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:283)
          at java.lang.Thread.run(Thread.java:619)
  </code></pre>
  
  <h3>My code:</h3>
  
  <h3><code>MyButtonUI</code> class</h3>
  
  <pre><code>package com.mypackage.mylaf;
  
  public class MyButtonUI extends BasicButtonUI{
      public static ComponentUI createUI(JComponent c) {
          return new MyButtonUI();
      }
  
      public void paint(Graphics g, JComponent c) {
              super.paint(g, c);
              //paint Button
  
      }   
  }//class
  </code></pre>
  
  <h3><code>MyLookAndFeel</code> class</h3>
  
  <pre><code>package com.mypackage.mylaf;
  public class MyLookAndFeel extends BasicLookAndFeel{
      public boolean isSupportedLookAndFeel() {
          return true;
      }
  
      public boolean isNativeLookAndFeel() {
          return false;
      }
  
      public String getDescription() {
          return "This is My Look and Feel";
      }
  
      public String getID() {
          return "MyLookAndFeel";
      }
  
      public String getName() {
          return "My Look And Feel";
      }
  
  
      protected void initClassDefaults(UIDefaults table) {
          super.initClassDefaults(table);
  
          String myPkg="my.";
          Object[] classes= {"ButtonUI",myPkg+"MyButtonUI"};
  
          table.putDefaults(classes);
      }//initClassDefaults
  
      public void initComponentDefaults(UIDefaults table) {
          super.initComponentDefaults(table);
  
          Object[] defaults= {"Button.font", new Font("Tahoma", Font.PLAIN, 10),
                              "Button.light", new Color(127, 41, 26)
                             };
  
          table.putDefaults(defaults);
      }//initComponentDefaults
  }//MyLookAndFeel
  </code></pre>
  
  <h3><code>MyLookAndFeelTest</code> class</h3>
  
  <pre><code>com.mypackage.mylaf; //1
  
  public class MyLookAndFeelTest{ //2
  public static void main(String args[]){//3
  try{ UIManager.setLookAndFeel(new MyLookAndFeel()); //4
  catch(Exception e){}//5
  JFrame f=new JFrame();//6
  JButton b=new JButton();//7 , this line is in exception
  
  f.add(b); //8
  }
  </code></pre>
  
  <p>When I set Look and Feel in main code with</p>
  
  <pre><code>UIManager.setLookAndFeel(new MyLookAndFeel());
  </code></pre>
  
  <p>the above exception is thrown. How can I fix it?</p>