Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.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
JavaBeanArrayList_Java_Arraylist_Javabeans - Fatal编程技术网

JavaBeanArrayList

JavaBeanArrayList,java,arraylist,javabeans,Java,Arraylist,Javabeans,我的Javabean中有一个字符串数组列表。我希望能够在设计时在属性编辑器中添加/删除此列表。我如何实现这一点?5年后我会回到爪哇,所以我有点笨。我已设法使所有简单类型属性在编辑器中可编辑,但当您单击属性编辑器中的“…”时,该属性表示该类型不支持自定义编辑。 所以 有人能给我指出正确的方向吗 非常感谢 我不知道你说的属性编辑器是什么意思。你是说IDE吗 在任何情况下,如果您的列表是私有的,您有两个选项允许访问它 1) 返回对列表的引用,然后调用者可以对其进行操作。 2) 创建一个add/remo

我的Javabean中有一个字符串数组列表。我希望能够在设计时在属性编辑器中添加/删除此列表。我如何实现这一点?5年后我会回到爪哇,所以我有点笨。我已设法使所有简单类型属性在编辑器中可编辑,但当您单击属性编辑器中的“…”时,该属性表示该类型不支持自定义编辑。 所以 有人能给我指出正确的方向吗


非常感谢

我不知道你说的属性编辑器是什么意思。你是说IDE吗

在任何情况下,如果您的列表是私有的,您有两个选项允许访问它

1) 返回对列表的引用,然后调用者可以对其进行操作。
2) 创建一个add/removeListElement方法,并传入要添加或删除的字符串

我更喜欢选项2,因为它提供了更好的列表封装/数据隐藏

类似于下面的东西,这是伪的,但你明白了

class TheBean {
    private List strings = ....

    getStrings(){
        return Collections.unmodifiableList(this.strings) // so if you return the reference people cant muck with it.
    }

    addListElement(String toAdd) {
        // possibly validate toAdd
        this.strings.add(toAdd);
    }
    // you also need removeListelement
}

嗯。。。你是这个意思吗

import java.util.List;

public MyBean {

private List<String> stringList;

public void add(String str) {
    stringList.add(str);
}

public String get(int i) {
    return stringList.get(i);
}

public String[] getElements() {
    String[] elements;
    stringList.toArray(elements);        
    return elements;
}

// ... Your bean struct here

}
import java.util.List;
公共蚕豆{
私人名单;
公共空添加(字符串str){
stringList.add(str);
}
公共字符串get(int i){
返回stringList.get(i);
}
公共字符串[]getElements(){
字符串[]元素;
stringList.toArray(元素);
返回元素;
}
//…这里是你的bean结构
}
或者您需要。

不幸的是,没有提到任何类型的集合,但是它支持数组作为“索引属性”

模式是:

Type[] getFoo();
void setFoo(Type[] value);
Type getFoo(int index);
void setFoo(int index, Type[] value);
像JList和JTree这样的流行组件通过实现一个模型(从技术上来说,它只是一个属性)和一个自定义组件编辑器来可视化地编辑模型,从而绕过了这个限制

对于自定义编辑器有一个详细的说明。
我不确定是否可以为类型为
ArrayList
的get/set属性创建编辑器,但也可能是这样。

请定义“在属性编辑器中”。GUI设计器中的属性编辑器很抱歉。(NetBeans)。我需要使其成为一个可重用控件,arraylist是一个限制值列表,使用我的控件的人可以在设计时定义这些限制值。是的,很抱歉,项目要求我使用Netbeans,所以我是。我需要GUI设计器的属性编辑器,以允许客户端在GUI设计器中添加/删除此数组列表中的成员,而无需任何编码。如果此解决方案不起作用,我将创建一个可重用的用户控件。我需要这样做,以便项目可以添加到设计器中的此arraylist并从中删除。就像当你点击一个“…”按钮并可以指定值时,我需要知道如何对Arraylist执行此操作。
class TheBean {
    private List strings = ....

getStrings(){
    return Collections.unmodifiableList(this.strings) // so if you return the reference people cant muck with it.
}

addListElement(String toAdd) {
    // possibly validate toAdd
    this.strings.add(toAdd);
}
// you also need removeListelement
}