0

TextFieldsを追加または削除できるフォームが欲しいのですが。

私はこれまで、配列を作成してサイズを変更し(実際には、元の配列を新しいより大きな配列にコピーし)、すべてのフォーム要素を削除し、すべてを再度追加して+この新しいTextFieldsの配列を追加して

いましたが、これによりプログラムの速度が低下すると思います。多くのTextFields
ベクターへのTextFiledsの追加が機能していません。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

フォームのドキュメントによると、「フォームに含まれるアイテムは、append、delete、insert、およびsetメソッドを使用して編集できます。」また、getメソッドもあるので、Vectorはまったく必要ないと思います。あなたが持っているとしましょう:

    フォームform=new Form( "Multiple fields");

    //新しい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

フォームに追加する際のコンパイルエラーを回避するには、Vector要素を必要なタイプ(Item)に明示的にキャストします。

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

Java SE 5以降での作業に慣れている場合は、Java MEがはるかに古いバージョン(JDK 1.3)に基づいていることに注意してください。結果として、生成はオプションではないため、より明示的なキャストが表示されます。

于 2012-04-04T13:32:41.127 に答える