属性的可能值的javabean列表
我想创建一个Bean,您可以在其中选择属性表单下拉列表的值(可能性有限),如下所示:属性的可能值的javabean列表,java,swing,javabeans,Java,Swing,Javabeans,我想创建一个Bean,您可以在其中选择属性表单下拉列表的值(可能性有限),如下所示: 我想有一个能力,以限制数量的颜色,用户可以选择两个,红色和蓝色。我的属性是typeJava.awt.Color如果您正在生成JavaBean,那么setter方法负责验证参数。如果参数无效,则抛出一个IllegalArgumentException public class ListProperty { private Color color //Other properties you li
我想有一个能力,以限制数量的颜色,用户可以选择两个,红色和蓝色。我的属性是type
Java.awt.Color
如果您正在生成JavaBean,那么setter方法负责验证参数。如果参数无效,则抛出一个IllegalArgumentException
public class ListProperty {
private Color color
//Other properties you like.
public void setColor(Color color) {
if (Color.RED.equals(color) || Color.BLUE.equals(color) {
this.color = color;
} else {
throw new IllegalArgumentException("The color is not red or blue.");
}
}
}
我想在这里使用枚举是最好的方法。因为您可以根据枚举的定义限制选项,所以您有严格的控制权。“布尔属性编辑器是一个离散选项菜单,它覆盖PropertyEditorSupport.getTags方法以返回包含“True”和“False”的字符串[]: "
这是一种对Bean的值进行离散列表的机制。需要覆盖该功能。你看,这不是一种优雅的方式。这个例子来自jbuttonbean属性,我想要更类似的东西,优雅且易于使用。这是推荐的方法。这就是为什么在JavaBean中有setter方法,只用于验证传递的参数。我理解您控制传递值的想法,我也应该在我的setProperty函数中这样做。首先我想得到下拉效果,然后我必须检查set函数中的值,以防有人试图传递非法参数。我会试试你的选择。我是用那种方法做的。
public String[] getTags() {
String result[] = { "True", "False" };
return result;
}