0

マウス クリック イベントで ContentPanel からすべての要素を削除し、新しい要素を追加したいと考えています。removeAll() メソッドで正常に動作しています。これにより、既存のすべてのコンポーネントが削除されます。しかし、新しいコンポーネントを追加したいとき、それは追加されません。

4

1 に答える 1

2

たぶんこのようなものはクリックハンドラーを省略しましたが、これからアイデアを得る必要があります。

private ContentPanel contentPanel;

public SwapScreen() {
 contentPanel = new ContentPanel();
 add(contentPanel);
}

public void swap1() {

   /*This should be split into a separate
    method and called only once to avoid recreating them.*/
   field1 = new TextField<String>();
   contentPanel.add(field1);

   field2 = new TextField<String>();
   contentPanel.add(field2);

  this.layout(true);
}

public void swap2() {

   /*This should be split into a separate
    method and called only once to avoid recreating them.*/
   anotherField1 = new TextField<String>();
   contentPanel.add(anotherField1);

   anotherField2 = new TextField<String>();
   contentPanel.add(anotherField2);

   this.layout(true);
}

最も重要な部分はthis.layout(true)、レイアウトを強制的に更新することです。

于 2012-05-09T09:45:01.120 に答える