Google Web Toolkit (GWT) 入門

ホーム > UI の設計 > DialogBox の利用

DialogBox の利用

GWT で下のスクリーンショットのような、ダイアログボックスを表示する方法を示します。

GWT のダイアログボックス

GWT ではダイアログボックスは、DialogBox クラスを利用します。 DialogBox は基本的にタイトルバー付きの PopupPanel といえます。ユーザーに何か情報を示しつつ、 ユーザーにインプットを促すことができます。また、ユーザーはダイアログボックスを ドラッグすることもできます。

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.VerticalPanel;

public class Gwttest1 implements EntryPoint {

  public void onModuleLoad() {

    final Button popupButton = new Button("Show Dialog");

    popupButton.addClickHandler(new ClickHandler(){
      @Override
      public void onClick(ClickEvent event) {
        final MyDialogBox diag = new MyDialogBox();
        diag.show();
        diag.center();
      }
    });

    RootPanel.get().add(popupButton);
  }

  private class MyDialogBox extends DialogBox {
    public MyDialogBox(){
      setText("Hello, DialogBox Title");
      Button closeButton = new Button("Close");
      closeButton.addClickHandler(new ClickHandler(){
        @Override
        public void onClick(ClickEvent event) {
          hide();
        }
      });
      VerticalPanel panel = new VerticalPanel();
      panel.add(new Label("Hello! DialogBox! This is a message."));
      panel.add(closeButton);
      setWidget(panel);
    }
  }
}

上のコードでは DialogBox を派生して、 MyDialogBox という名前のクラスを定義しています。

MyDialogBox ではコンストラクタで動作を全て定義しています。

まず Button をひとつ定義し (closeButton)、 それにクリックハンドラを設定しています。 クリック時に行うことは、hide() メソッドを呼ぶことだけです。 次に VerticalPanel をひとつ用意し、 順番にラベルと上で作った closeButton を追加しています。 Label にはここでは適当なメッセージをセットしています。

最後に、setWidget メソッドで VerticalPanel をダイアログにセットしています。

ホーム > UI の設計 > DialogBox の利用