import javax.swing.JPanel; public class ChartBean extends JPanel{ private float titlePosition = JPanel.CENTER_ALIGNMENT; public float getTitlePosition() { return titlePosition; } public void setTitlePosition(float titlePosition) { this.titlePosition = titlePosition; } } import java.beans.PropertyEditorSupport; public class TitlePositionEditor extends PropertyEditorSupport { private String[] options = {"Left", "Center", "Right"}; @Override public String[] getTags() { return options; } @Override public String getJavaInitializationString() { return "" + getValue(); } @Override public void setAsText(String text) throws IllegalArgumentException { for (int i = 0; i < options.length; i++) { if (options[i].equals(text)) { setValue(i); return; } } super.setAsText(text); } @Override public String getAsText() { int value = (Integer)getValue(); return options[value]; } } import java.beans.PropertyDescriptor; import java.beans.SimpleBeanInfo; public class ChartBeanBeanInfo extends SimpleBeanInfo { @Override public PropertyDescriptor[] getPropertyDescriptors() { try { //将TitlePositionEditor绑定到ChartBean的titlePosition属性中 PropertyDescriptor titlePositionDescriptor = new PropertyDescriptor("titlePosition", ChartBean.class); titlePositionDescriptor.setPropertyEditorClass(TitlePositionEditor.class); return new PropertyDescriptor[] {titlePositionDescriptor}; } catch (Exception e) { e.printStackTrace(); return null; } } }