0

コンポーネントを動的に追加している間、「this.container is null」が firebug に表示されます。

私はいくつかのコンボボックスを含むウィンドウを持っています。コンボ 3 の選択値に基づいて、「ラベル」フィールドが削除され、コンボボックスまたはテキスト フィールドに置き換えられます。私はこれを私の使用して行います

form.items.removeAt(4);
form.items.insert(4, newItem); #here newItem can be combox/textfield
form.doLayout();

フォームはパネル内にあります。

上記の行が実行されたとき。「this.container is null」が表示され、コンポーネントを適切な位置に挿入/追加できません。

助言がありますか?

4

2 に答える 2

0

基になるアイテム コレクションを変更しないでください。コンテナーで remove/insert メソッドを使用します。

于 2012-08-22T07:13:30.490 に答える
0

これらの行を行ごとにコメントして、どの行が次のようなエラーを生成するかを確認してください

form.items.removeAt(4);
//form.items.insert(4, newItem); #here newItem can be combox/textfield
//form.doLayout();

form.items.removeAt(4);
form.items.insert(4, newItem); #here newItem can be combox/textfield
//form.doLayout();

form.items.removeAt(4);
form.items.insert(4, newItem); #here newItem can be combox/textfield
form.doLayout();

挿入しようとしたときに、挿入/置換されたオブジェクトがまだ準備されていないために、問題が発生する可能性があります。newItem の初期化コードをお知らせください。

更新

または、変更するコンポーネント (ラベル、コンボボックス、テキストフィールド) をcard layoutを使用してパネルにラップできます。そして、combo3 の変更時にcard、そのパネルで正確を選択するだけです。

于 2012-08-21T14:08:17.557 に答える