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的默认实现。 |
建设者 | 描述 |
---|---|
DialogBox() | 它创建一个空对话框。 |
DialogBox(boolean autoHide) | 它创建一个空对话框, 指定其“自动隐藏”属性。 |
DialogBox(boolean autoHide, boolean modal) | 它会创建一个空对话框, 指定其“自动隐藏”和“模式”属性。 |
DialogBox(boolean autoHide, boolean modal, DialogBox.Caption captionWidget) | 它创建一个空对话框, 指定其“自动隐藏”, “模态”属性, 并实现一个自定义DialogBox.Caption。 |
修饰符和类型 | 方法 | 描述 |
---|---|---|
受保护的空白 | 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() | 它显示弹出窗口并将其附加到页面。 |
//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对话框示例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对话框】输出:
文章图片