- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面是两个内部类,当用户单击相应的按钮时,它们会弹出一个简单的对话框。然后,他们更新填充界面上列表框的列表中的值。
我注意到,在大多数情况下,对话框似乎会弹出与列表框当前索引/所选值一样多的自身副本 - 但并非总是如此。有时只弹出一个对话框。有任何想法吗?如果需要,我可以提供更多代码。
public class EditCustomerHandler implements ClickHandler {
public EditCustomerHandler() {}
public void onClick(ClickEvent event) {
final DialogBox editCustDialog = new DialogBox();
editCustDialog.setHTML(customer.getName());
FlexTable content = new FlexTable();
FlexTable buttonPanel = new FlexTable();
final TextBox customerNameTextBox = new TextBox();
content.setText(0, 0, "Name: ");
content.setWidget(0, 1, customerNameTextBox);
Button saveButton = new Button("Save");
saveButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
if (!customer.getName().equals(customerNameTextBox.getText())) {
customer.setName(customerNameTextBox.getText());
editCustDialog.hide();
stationService.saveCustomer(customer, new DefaultAsyncCallback<String>() {
public void onSuccess(String errorCode) {
if (errorCode != null) {
MessageBox.showMessage("Error", errorCode);
return;
}
refreshCusts();
}
});
}
}
});
Button cancelButton = new Button("Cancel");
cancelButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
editCustDialog.hide();
}
});
buttonPanel.setWidget(0, 0, saveButton);
buttonPanel.setWidget(0,1, cancelButton);
content.getFlexCellFormatter().setColSpan(1, 0, 2);
content.getCellFormatter().setHorizontalAlignment(1,0, HasHorizontalAlignment.ALIGN_CENTER);
content.setWidget(1,0, buttonPanel);
editCustDialog.add(content);
editCustDialog.center();
editCustDialog.setGlassEnabled(true);
editCustDialog.setModal(false);
editCustDialog.show();
}
}
public class PlusCustomerHandler implements ClickHandler {
public PlusCustomerHandler() {}
public void onClick(ClickEvent event) {
final DialogBox plusCustDialog = new DialogBox();
plusCustDialog.center();
plusCustDialog.setModal(false);
plusCustDialog.setGlassEnabled(true);
plusCustDialog.setHTML("New Customer");
final TextBox customerNameTextBox = new TextBox();
final FlexTable content = new FlexTable();
final FlexTable buttonPanel = new FlexTable();
final Button saveButton = new Button("Save");
saveButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
if (!customerNameTextBox.getText().equals("")) {
SMSCustomer newCustomer = new SMSCustomer();
newCustomer.setName(customerNameTextBox.getText());
stationService.saveCustomer(newCustomer, new DefaultAsyncCallback<String>() {
public void onSuccess(String errorMsg) {
if (errorMsg == null) {
refreshCusts();
plusCustDialog.hide();
}
}
});
}
else {
MessageBox mb = new MessageBox();
mb.showMessage("Yo dawg", "Customers must have names!");
}
}});
Button cancelButton = new Button("Cancel");
cancelButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
plusCustDialog.hide();
}
});
content.setText(0, 0, "Name: ");
content.setWidget(0, 1, customerNameTextBox);
buttonPanel.setWidget(0, 0, saveButton);
buttonPanel.setWidget(0,1, cancelButton);
content.getFlexCellFormatter().setColSpan(1, 0, 2);
content.getCellFormatter().setHorizontalAlignment(1,0, HasHorizontalAlignment.ALIGN_CENTER);
content.setWidget(1,0, buttonPanel);
plusCustDialog.add(content);
plusCustDialog.show();
}
}
最佳答案
您在类的 .onClick()
方法中创建一个对话框。请注意,您已将 Final 添加到对话框中,但这并不意味着新的 ClickHandler 不会多次添加到您的 saveButton 和 cancelButton 中。事实上,每次触发此 .onClick()
方法时,您都会构建此对话框。
更好的方法是这样的:
DialogBox editCustDialog;
public void onClick(ClickEvent event) {
if (editCustDialog == null) {
buildEditCustDialog();
}
editCustDialog.show(); // or, editCustDialog.center();
}
private void buildEditCustDialog() {
editCustDialog = new DialogBox();
// etc.
}
关于java - GWT DialogBox 生成其自身的多个副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14035427/
GWT 客户端代码: DialogBox dialog = new DialogBox(); dialog.setAnimationEnabled(true); SimplePanel panel =
我有一个当前有消息循环的应用程序。如果我要使用 DialogBox 方法创建一个模式对话框,当前消息循环是否也会从对话框接收消息,或者它们是否会被运行时保留? 最佳答案 DialogBox创建自己的消
在我们开始之前 首先,让我先说这是我的第一个 Android 应用程序,我一无所知。因此,如果有任何愚蠢或不值得努力的方法,请告诉我。 问题 我正在构建一个与 MySQL 数据库相关联的应用程序,该数
我不确定我做错了什么,但它看起来是这样的(没有关闭按钮,没有标题栏): 看起来好像没有更新/滴答/重绘。 这是我的 Resource.rc 文件: #include "resource.h" #inc
下面是两个内部类,当用户单击相应的按钮时,它们会弹出一个简单的对话框。然后,他们更新填充界面上列表框的列表中的值。 我注意到,在大多数情况下,对话框似乎会弹出与列表框当前索引/所选值一样多的自身副本
我有一个 Navigator 类和一个继承自 GridPane 的自定义 DialogBox 类。 public DialogBox(final JDialog jdialog) {
使用 GWT v2.5.1,我正在创建一个 DialogBox 并通过调用 dialog.setHTML(...) 使用 HTML 填充它: could not start. These prefe
我有一个对话框 IDD_WINDOW_INFO 当用户在我的 C++ Win32 应用程序中单击按钮或菜单项时必须打开它。我用来打开对话框的方法在以下行中: DialogBox(hInstance,
我有一个要求,当单击一个按钮时,系统应提示用户输入一些其他详细信息,例如姓氏、DOB 等。我尝试使用 窗口。 confirm() 但我认为这不符合我的目的。有人可以帮助我如何通过 UIBinder 在
我的页面上有一个带有按钮的表格。按钮太多,我有一个滚动条可以向下滚动我的表格。 按钮“onClick”生成一个对话框,其中包含滚动面板、内容和一个关闭此对话框的按钮。我使用 DialogBox.cen
我有一个对话框类: public class Dialogbox { public static final Window dialogbox = new Window(); publ
我在 GWT 对话框中将 glass enabled 设置为 true。但是,当用户在窗口中向下滚动时,“玻璃效果”不再覆盖整个窗口。 有谁知道如何解决这个问题?非常感谢您的任何建议! 最佳答案 您需
我想在我的 GWT 应用程序中使用对话框,但它是透明的!我需要做什么 ? 最佳答案 您可以将 CSS 中的 Style 设置为不透明,类应为 gwt-DialogBox。 .gwt-DialogBox
它是否正确,因为在 Windows 中并没有说它不好或不推荐。 例如像这样: int APIENTRY _tWinMain(HINSTANCE hInstance,
我需要我的一个 gwt 面板始终位于所有其他内容之上,并且始终可供用户单击它的元素。即使在页面上打开了一个对话框,我的面板也应该流过它。我怎样才能做到这一点? 最佳答案 用PopupPanel您应该能
您好亲爱的有经验的用户, 我在 Windows 中编程已经有一段时间了,我一直有这个问题创建用户界面时正确的做法是什么? 是否在资源脚本中对 UI 进行操作并调用 DialogBox。 或者首先创建一
从最小化状态恢复对话框后,我的选项卡控件 (SysTabControl32) 的边缘没有完全重新绘制。 例子: 控件在资源文件中定义(编辑所有出现的 IDD_VJOYCONF): IDD_VJOYCO
我刚刚安装了最新的 google chrome,并试图用 DialogBox 测试 GWT 2.3 代码;出于某种原因,像 setGlassEnabled(true); 这样的选项以一种奇怪的方式工作
这是否可以在 android 中的对话框上显示 MapView 并执行诸如选择位置之类的操作以获取 android 中父 Activity 的纬度经度。 最佳答案 MapView 是一个 View ,
我创建了一个简单的 W32 应用程序来循环使用两个应用程序(硬编码窗口类 atm)。当我调用开始按钮 (IDC_Start) 时一切正常,但是当我将焦点更改为hwnd 应用程序挂起,无法关闭。我只需要
我是一名优秀的程序员,十分优秀!