0

我想要一个可以添加或删除文本字段的表单。

到目前为止,我正在创建一个数组并调整大小(实际上是将原始数组复制到一个新的更大的数组),然后删除所有表单元素,然后再次添加所有内容 + 这个新的 TextFields 数组,

但我认为这会减慢程序的速度许多 TextFields
将 TextFileds 添加到 Vector 不起作用。当它即将向表单添加 TextField 时,

form.append(vector.elementAt(i));

它说元素不是它。

method Form.append(Item) is not applicable
  (actual argument Object cannot be converted to Item by method invocation conversion)
method Form.append(Image) is not applicable
  (actual argument Object cannot be converted to Image by method invocation conversion)
method Form.append(String) is not applicable
  (actual argument Object cannot be converted to String by method invocation conversion)

我应该重新调整数组大小,还是有更好的方法?

4

2 回答 2

2

根据表单文档“可以使用追加、删除、插入和设置方法编辑表单中包含的项目。” 而且你还有一个 get 方法,所以我认为你根本不需要 Vector。假设你有:

    表单 form = new Form("多个字段");

    // 如果要添加新的 TextField
    form.append(new TextField("label", "text", 10/*maxSize*/, TextField.ANY));

    // 如果要删除最后一个TextField:
    form.delete(form.size() - 1);

    // 遍历所有字段:
    for (int i = 0; i < form.size(); i++) {
        TextField textField = (TextField) form.get(i);
    }

于 2012-04-04T19:44:57.420 回答
0

为避免在添加到 Form 时出现编译错误,请将 Vector 元素显式转换为所需的类型(Item):

form.append((Item)(vector.elementAt(i)));

请注意,如果您习惯使用 Java SE 5 或更高版本 - 请记住 Java ME 基于旧的版本(JDK 1.3)。结果,您会看到更明确的演员表,因为泛型不是一种选择。

于 2012-04-04T13:32:41.127 回答