javabean的属性编辑器在netbeans中为什么不显示呢?
//本代码的作用:想在netbeans中,给titlePosition属性显示自己的属性编辑器,按道理,应该有个下拉框
//可是,没有显示
//以下是代码
package javaBeantest;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.font.FontRenderContext;
import java.awt.geom.*;
import java.beans.PropertyDescriptor;
import java.beans.PropertyEditorSupport;
import java.beans.*;
public class ChartBean extends JPanel{
public void setTitlePosition(int p){
this.titlePosition = p;
}
public int getTitlePosition(){
return this.titlePosition;
}
private static final int LEFT = 0;
private static final int CENTER = 1;
private static final int RIGHT = 2;
private static final int XPREFSIZE = 300;
private static final int YPREFSIZE = 300;
private double[] values = {1,2,3};
private String title = "Title";
private int titlePosition = CENTER;
private boolean inverse;
private Color color = Color.red;
}
//一些属性编辑器
class TitlePositionEditor extends PropertyEditorSupport{
public String[] getTags(){
return options;
}
private String[] options = {"Left","Center","Right"};
@Override public String getJavaInitializationString(){
return "" + getValue();
}
public String getAsText(){
int value = (Integer)getValue();
return options[value];
}
public void setAsText(String s){
for (int i = 0; i < options.length; i++){
if (options[i].equals(s)){
setValue(i);
return;
}
}
}
}
class ChartBeanBeanInfo extends SimpleBeanInfo{
@Override public PropertyDescriptor[] getPropertyDescriptors(){
try
{
PropertyDescriptor titlePositionDescriptor =
new PropertyDescriptor("titlePosition", ChartBean.class);
titlePositionDescriptor.setPropertyEditorClass(TitlePositionEditor.class);
/*PropertyDescriptor valuesDescriptor =
new PropertyDescriptor("values",ChartBean.class);
valuesDescriptor.setPropertyEditorClass(DoubleArrayEditor.class);*/
return new PropertyDescriptor[]{
titlePositionDescriptor//,
//valuesDescriptor
};
}
catch(IntrospectionException e){
e.printStackTrace();
return null;
}
}