0

概念

ユーザーが removeUser ラベルをクリックすると、テキスト ボックスが表示されます。次に、削除したいユーザーのユーザー名を入力します。次に、ユーザーは「Enter」を押してユーザーを削除します。

GWT の問題

タイプのオブジェクトを実装するクラスを使用しています。com.google.gwt.user.client.ui.Composite.

そのフィールドの 1 つに @UiField ラベルが含まれています。

@UiField
Label removeUser;

また、removeUser ラベルがクリックされたときに表示される通常の TextBox があります。

 private TextBox removeUserTextBox = new TextBox();

私のコードが正しければ、 removeUser がクリックされると removeUserTextBox が表示されます。

   removeUser.addClickHandler(new ClickHandler()
    {
        public void onClick(final ClickEvent event)
        {   
            removeUserTextBox.setVisible(true);
            removeUserTextBox.setText("blah blah")
            removeUserTextBox.addStyleName(StaticResourceBundle.
INSTANCE.coreCss().removeUserTextBox());
            }
        });

ただし、removeUser ラベルをクリックしても、removeUserTextBox は表示されません。

removeUserTextBox の CSS は removeUser の CSS に似ているため、CSS の問題であるかどうかはわかりません (正しく表示されます)。

お知らせ下さい。

ありがとう、ケビン

4

2 に答える 2

1

テキストボックスが DOM に接続されていないようです。次のいずれかを実行できます。

1) マークアップ (uiBinder) に textBox を含め、@UiField アノテーションを挿入します。

2) コンストラクターで作成された textBox を、DOM に既にアタッチされている RootPanel またはその他のコンテナーに追加します。

3) textBox をポップアップ パネルにラップし、ラベルに対して相対的に表示します。css で配置する必要がないため、このバリアントが最も気に入っています。

于 2012-10-18T04:25:02.470 に答える
1

ハンドラーのテキストボックスにスタイルを追加するのはなぜですか? クリック時に setVisible(true) を設定し、ユーザーが削除を確認したら setVisible(false) を設定します。

于 2012-10-18T02:51:12.650 に答える