我是 GWT 和网络的新手。
我正在尝试使用弹出/对话框。弹出窗口和对话框始终显示在小部件后面。我一直在谷歌搜索,我发现最相关的是这个 http://groups.google.com/group/gwt-google-apis/browse_thread/thread/40db4fcbe10d2060,它没有提供任何答案。无论如何,我有第 3 方库,bst-player 1.3,它使用 flash。所以我禁用了它(后来也将其删除),弹出窗口不会出现在顶部!它仍然隐藏在小部件后面。
我了解到 popuppanel/dialogpanel 类似不需要添加到另一个小部件。一种不同的说法是,它不是一个普通的小部件,它不能附加到父级,但它会将自己附加到 dom 以保证在顶部(来自GWT 复合小部件)
我不知所措,我在这里……
更新
这是我的弹出课程
public class PopUp {
static PopupPanel simplePopup;
public static void init() {
simplePopup = new PopupPanel(true);
simplePopup.hide();
simplePopup.setVisible(false);
// DOM.setIntStyleAttribute(simplePopup.getElement(), "zIndex", 3);
}
public static void showpopupmsg(String msg, int left, int top) {
if (simplePopup == null) {
init();
}
if (msg != null && !msg.equalsIgnoreCase("")) {
simplePopup.ensureDebugId("cwBasicPopup-simplePopup");
simplePopup.setWidget(new HTML(msg));
simplePopup.setVisible(true);
simplePopup.setPopupPosition(left, top);
simplePopup.setWidth("475px"); //575
simplePopup.setGlassEnabled(true);
simplePopup.show();
}
}
public static void show(String message){
if (simplePopup == null) {
init();
}
simplePopup.setGlassEnabled(true);
simplePopup.setTitle(message);
simplePopup.center();
}
}
这是我打电话的方式
tasksTable.doneColumn.setFieldUpdater(new FieldUpdater<TaskProxy, Boolean>() {
public void update(int index, TaskProxy task, Boolean value) {
String msg = "Here is the popup. All the way underneath";
Widget source = tasksTable;
int left = source.getAbsoluteLeft() - 50;
// source.getAbsoluteLeft() + 25;
int top = source.getAbsoluteTop() - 25;
PopUp.showpopupmsg(msg, left, top); //Here is the calling method
TaskRequest request = requestFactory.taskRequest();
TaskProxy updatedTask = request.edit(task);
updatedTask.setDone(value);
request.updateTask(updatedTask).fire();
}
});
这是弹出窗口在小部件下方的方式。