import java.beans.BeanInfo; //导入方法依赖的package包/类
private Image initIcon (int type) {
Image beanInfoIcon = null;
try {
InstanceCookie ic = ic();
if (ic == null) return null;
Class> clazz = ic.instanceClass();
//Fixed bug #5610
//Class javax.swing.JToolBar$Separator does not have icon
//we will use temporarily icon from javax.swing.JSeparator
//New icon is requested.
String className = clazz.getName ();
BeanInfo bi;
if (
className.equals ("javax.swing.JSeparator") || // NOI18N
className.equals ("javax.swing.JToolBar$Separator") // NOI18N
) {
Class clazzTmp = Class.forName ("javax.swing.JSeparator"); // NOI18N
bi = Utilities.getBeanInfo (clazzTmp);
} else {
bi = Utilities.getBeanInfo (clazz);
}
if (bi != null) {
beanInfoIcon = bi.getIcon (type);
}
// Also specially handle SystemAction's.
if (SystemAction.class.isAssignableFrom (clazz)) {
SystemAction action = SystemAction.get (clazz.asSubclass(SystemAction.class));
if (beanInfoIcon == null) {
Icon icon = action.getIcon ();
if (icon != null) {
beanInfoIcon = ImageUtilities.icon2Image(icon);
}
}
}
} catch (Exception e) {
// Problem ==>> use default icon
Logger.getLogger(SerialDataNode.class.getName()).log(Level.WARNING, null, e);
}
return beanInfoIcon;
}