Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
属性的可能值的javabean列表_Java_Swing_Javabeans - Fatal编程技术网

属性的可能值的javabean列表

属性的可能值的javabean列表,java,swing,javabeans,Java,Swing,Javabeans,我想创建一个Bean,您可以在其中选择属性表单下拉列表的值(可能性有限),如下所示: 我想有一个能力,以限制数量的颜色,用户可以选择两个,红色和蓝色。我的属性是typeJava.awt.Color如果您正在生成JavaBean,那么setter方法负责验证参数。如果参数无效,则抛出一个IllegalArgumentException public class ListProperty { private Color color //Other properties you li

我想创建一个Bean,您可以在其中选择属性表单下拉列表的值(可能性有限),如下所示:


我想有一个能力,以限制数量的颜色,用户可以选择两个,红色和蓝色。我的属性是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;
}