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