0

com.google.gwt.user.client.ui.HTMLウィジェットを有効または無効にする方法はありますか? 試してみましたが、setEnabled(boolean) メソッドがないようです:S あなたの経験を共有してください

ありがとう

4

5 に答える 5

0

残念ながら、Widgetにはそのようなメソッドはありません。

しかし、達成する余地は少しあります。私はグーグルグループの助けを借りてそれを機能させました

public void setEnabled (boolean e)
 {
  Iterator<Widget> itr = grd.iterator (); // grd is a FlexTable which
contains my form controls

  while (itr.hasNext ())
  {
   Widget w = itr.next ();

   if (w instanceof TextBox)
   {
    TextBox t = (TextBox) w;
    t.setEnabled (e);
   }

   if (w instanceof PasswordTextBox)
   {
    PasswordTextBox t = (PasswordTextBox) w;
    t.setEnabled (e);
   }

  ...
  } 
于 2013-01-30T06:57:59.297 に答える
0

入力など、有効または無効にできる HTML 要素はごくわずかです。GWT には、フォーカスを取得できる要素用の setEnabled() があります。

http://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/gwt/user/client/ui/FocusWidget.html#setEnabled(ブール値)

于 2013-01-29T19:26:48.417 に答える
0

一部のフォーム要素 (入力、オプション) のみを無効にできます。

無効にするには:

widget.getElement().setAttribute("disabled","disabled");

再度有効にするには:

widget.getElement().removeAttribute("disabled");

他のウィジェットについては、「無効化」を模倣するようにスタイルを設定する必要があります。(例: 色をグレーに設定)

于 2013-01-29T20:42:08.360 に答える
0

有効とはどういう意味かわかりませんが、試してみます。

見えるか見えないかを意味していると思います。

HTMLPanel panel = new HTMLPanel();
panel.setVisible(false); // Disabled
panel.setVisible(true);  // Enabled

うまくいけば、それはあなたが探していたものです。

于 2013-01-29T19:22:03.570 に答える
0

FocusWidgetから継承しないウィジェットで有効化および無効化機能の外観を与える

スタイルとイベント処理の実装の両方をオーバーライドする必要があります。に a を保持enableFlしますMyHTMLPanel extends HTMLPanel

ステップ 1 - 有効化および無効化スタイルを指定します。opacity css を使用して、色付けの灰色化のオン/オフを切り替えます。enableFl の状態に基づいて、有効化/無効化機能をオン/オフします。

ステップ 2onBrowserEvent -独自の enableFl 状態をオーバーライドして実行条件を設定することにより、ウィジェットのイベント処理を無効/有効にします。

ステップ 3 - HTMLPanel 内部のすべてのウィジェットを再帰的に無効にします。

ユース ケースが単純な場合は、 com.google.gwt.user.client.ui.HTMLPanel の代わりに com.google.gwt.user.client.ui.HTML を使用することを選択できます

于 2013-01-30T05:58:04.737 に答える