GWT对话框

GWT对话框的顶部有一个标题区域, 可由用户拖动.GWT对话框, 对PopupPanel.setWidth(String)和PopupPanel.setHeight(String)的调用将设置对话框的宽度和高度。
GWT对话框类声明
让我们看看com.google.gwt.user.client.ui.DialogBox的声明

public class DialogBox extends DecoratedPopupPanel

GWT对话框嵌套类
描述
DialogBox。标题 它是DialogBox标题支持的一组特性接口。
DialogBox.CaptionImpl 这是Caption的默认实现。
GWT对话框构造函数
建设者 描述
DialogBox() 它创建一个空对话框。
DialogBox(boolean autoHide) 它创建一个空对话框, 指定其“自动隐藏”属性。
DialogBox(boolean autoHide, boolean modal) 它会创建一个空对话框, 指定其“自动隐藏”和“模式”属性。
DialogBox(boolean autoHide, boolean modal, DialogBox.Caption captionWidget) 它创建一个空对话框, 指定其“自动隐藏”, “模态”属性, 并实现一个自定义DialogBox.Caption。
GWT对话框常用方法
修饰符和类型 方法 描述
受保护的空白 beginDragging(MouseDownEvent event) 在标题区域中的鼠标按下时调用它, 通过打开事件捕获开始拖动循环。
protected void doAttachChildren() 如果一个窗口小部件包含一个或多个不在逻辑窗口小部件层次结构中的子窗口小部件(子窗口仅在DOM级别上物理连接), 则它必须重写此方法并为其每个子窗口小部件调用Widget.onAttach()。
受保护的空白 doDetachChildren() 如果一个小部件包含一个或多个不在逻辑小部件层次结构中的子小部件(该子部件仅在DOM级别上物理连接), 则它必须重写此方法并为其每个子小部件调用Widget.onDetach()。
void hide(boolean autoClosed) 它隐藏弹出窗口, 并将其与页面分离。
void onBrowserEvent(Event event) 每当接收到浏览器事件时都会调用它。
protected void onPreviewNativeEvent(Event.NativePreviewEvent event) 它创建预览。
void setHTML(SafeHtml html) 它通过调用其setHTML(SafeHtml)方法在标题内设置html字符串。
void setHTML(java.lang.String html) 它通过调用其setHTML(SafeHtml)方法在标题内设置html字符串。
void setText(java.lang.String text) 它通过调用setText(String)方法在标题内设置文本。
void show() 它显示弹出窗口并将其附加到页面。
GWT对话框示例1
//SampleDialogBox1.java
import com.extjs.gxt.ui.client.event.ButtonEvent; import com.extjs.gxt.ui.client.event.SelectionListener; import com.extjs.gxt.ui.client.widget.Window; import com.extjs.gxt.ui.client.widget.button.Button; import com.extjs.gxt.ui.client.widget.form.FormPanel; import com.extjs.gxt.ui.client.widget.form.HtmlEditor; import com.extjs.gxt.ui.client.widget.form.TextField; import com.extjs.gxt.ui.client.widget.layout.FitLayout; import com.extjs.gxt.ui.client.widget.layout.FormData; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.user.client.ui.RootPanel; /** * This is the entry point method. */ public void onModuleLoad() { VerticalPanel verticalPanel = new VerticalPanel(); verticalPanel.setSpacing(10); verticalPanel.setBorderWidth(1); verticalPanel.setSize("100%", "100%"); verticalPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER); verticalPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE); // The log in button Button submit = new Button("DialogBox"); verticalPanel.add(submit); submit.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { // Add validation showCustomDialog(); } }); // Add our panel to the page RootLayoutPanel.get().add(verticalPanel); } /** * Draws Custom Dialog box. * @return DialogBox */ private DialogBox showCustomDialog() {final DialogBox dialog = new DialogBox(false, true); // final DialogBox dialog = new DialogBox(true, true); // Set caption dialog.setText("DialogBox Caption"); // Setcontent Label content = new Label("This is sample text message inside " + "Customized Dialogbox. In this example a Label is " + "added inside the Dialogbox, whereas any custom widget " + "can be added inside Dialogbox as per application'ser's need. "); if (dialog.isAutoHideEnabled()){ dialog.setWidget(content); } else { VerticalPanel vPanel = new VerticalPanel(); vPanel.setSpacing(2); vPanel.add(content); vPanel.add(new Label("\n")); vPanel.add(new Button("Close", new ClickHandler() { public void onClick(ClickEvent event) { dialog.hide(); } })); dialog.setWidget(vPanel); } dialog.setPopupPosition(100, 150); dialog.show(); return dialog; }

输出:
GWT对话框

文章图片
GWT对话框示例2
//SampleDialogBox2.java
/** * This is the entry point method. */ public void onModuleLoad() { Button btn= new Button("Dialogbox", new ClickHandler() {@Override public void onClick(ClickEvent event) { DialogBox dlg = new CustomDialog(); dlg.center(); } }); RootPanel.get().add(btn); } /** * CustomDialog adds DockPanel as its child widget. */ class CustomDialog extends DialogBox implements ClickHandler { public CustomDialog() { super(true); setText("Sample DialogBox"); Button closeButton = new Button("Close", this); HTML msg = new HTML("A Custom dialog box.", true); DockPanel dock = new DockPanel(); dock.setSpacing(6); Image image = new Image(); image.setUrl("/images/gwt-dialogbox1"); dock.add(image, DockPanel.CENTER); dock.add(closeButton, DockPanel.SOUTH); dock.add(msg, DockPanel.NORTH); dock.setCellHorizontalAlignment(closeButton, DockPanel.ALIGN_CENTER); dock.setWidth("100%"); setWidget(dock); } @Override public void onClick(ClickEvent event) { hide(); } }

【GWT对话框】输出:
GWT对话框

文章图片

    推荐阅读