660 * <code>null</code>
661 * class loader is provided, <code>classForName()</code> otherwise.
662 * <p>
663 * If a mapping for <code>uiClassID</code> exists or if the specified
664 * class can't be found, return <code>null</code>.
665 * <p>
666 * This method is used by <code>getUI</code>, it's usually
667 * not necessary to call it directly.
668 *
669 * @param uiClassID a string containing the class ID
670 * @param uiClassLoader the object which will load the class
671 * @return the value of <code>Class.forName(get(uidClassID))</code>
672 * @see #getUI
673 */
674 public Class<? extends ComponentUI>
675 getUIClass(String uiClassID, ClassLoader uiClassLoader)
676 {
677 try {
678 String className = (String)get(uiClassID);
679 if (className != null) {
680 Class cls = (Class)get(className);
681 if (cls == null) {
682 if (uiClassLoader == null) {
683 cls = SwingUtilities.loadSystemClass(className);
684 }
685 else {
686 cls = uiClassLoader.loadClass(className);
687 }
688 if (cls != null) {
689 // Save lookup for future use, as forName is slow.
690 put(className, cls);
691 }
692 }
693 return cls;
694 }
695 }
696 catch (ClassNotFoundException e) {
697 return null;
698 }
699 catch (ClassCastException e) {
|
660 * <code>null</code>
661 * class loader is provided, <code>classForName()</code> otherwise.
662 * <p>
663 * If a mapping for <code>uiClassID</code> exists or if the specified
664 * class can't be found, return <code>null</code>.
665 * <p>
666 * This method is used by <code>getUI</code>, it's usually
667 * not necessary to call it directly.
668 *
669 * @param uiClassID a string containing the class ID
670 * @param uiClassLoader the object which will load the class
671 * @return the value of <code>Class.forName(get(uidClassID))</code>
672 * @see #getUI
673 */
674 public Class<? extends ComponentUI>
675 getUIClass(String uiClassID, ClassLoader uiClassLoader)
676 {
677 try {
678 String className = (String)get(uiClassID);
679 if (className != null) {
680 ReflectUtil.checkPackageAccess(className);
681
682 Class cls = (Class)get(className);
683 if (cls == null) {
684 if (uiClassLoader == null) {
685 cls = SwingUtilities.loadSystemClass(className);
686 }
687 else {
688 cls = uiClassLoader.loadClass(className);
689 }
690 if (cls != null) {
691 // Save lookup for future use, as forName is slow.
692 put(className, cls);
693 }
694 }
695 return cls;
696 }
697 }
698 catch (ClassNotFoundException e) {
699 return null;
700 }
701 catch (ClassCastException e) {
|