/** Builds a new panel around the Object f. Any properties of the Object (defined by matching <code>setX/getX</code> methods)
* are added to the panel. If the object implements {@link HasPropertyTooltips} then a tooltip is added for the property if the
* {@link HasPropertyTooltips#getPropertyTooltip(java.lang.String) } returns a non-null String property.
*
* @param obj the object
*/
public ParameterControlPanel(Object obj) {
setClazz(obj);
initComponents();
String cn = getClazz().getClass().getName();
int lastdot = cn.lastIndexOf('.');
String name = cn.substring(lastdot + 1);
setName(name);
titledBorder = new TitledBorder(name);
titledBorder.getBorderInsets(this).set(1, 1, 1, 1);
setBorder(titledBorder);
normalBorder = titledBorder.getBorder();
redLineBorder = BorderFactory.createLineBorder(Color.red);
addIntrospectedControls();
// add(new JPanel()); // to fill vertical space in GridLayout
add(Box.createVerticalGlue()); // to fill space at bottom - not needed
try {
// when clazz fires a property change event, propertyChangeEvent is called here and we refresh all our controls
Method m=obj.getClass().getMethod("getPropertyChangeSupport", (Class[])null);
support=(PropertyChangeSupport)m.invoke(obj, (Object[]) null);
support.addPropertyChangeListener(this);
} catch (Exception ex) {
}
// if(f instanceof PropertyChangeListener){
// ((PropertyChangeListener)f).getPropertyChangeSupport().addPropertyChangeListener(this);
// }
ToolTipManager.sharedInstance().setDismissDelay(10000); // to show tips
revalidate();
}
ParameterControlPanel.java 文件源码
java
阅读 22
收藏 0
点赞 0
评论 0
项目:jaer
作者:
评论列表
文章目录