java - 如何防止GWT对话框被拖出屏幕?

标签 java gwt

我正在寻找一个简单的解决方案来解决我的 GWT DialogBox 可以拖出屏幕的问题。主机具有 CSS 规则 overflow:hidden 因为我不希望出现任何滚动条。

显然,我需要以某种方式将监听器附加到拖动上,并防止将其带出外部的移动。我只能在 DialogBox 中看到 onMouseMovebeginDraggingendDragging 方法。

最佳答案

“我们”通过以下方式解决了这个问题:

@Override
protected void endDragging(MouseUpEvent event)
{
 int genericMargin = 60;

 int leftMargin = -(this.getOffsetWidth() - genericMargin);
 int lowerMargin = Window.getClientHeight() - genericMargin;
 int rightMargin = Window.getClientWidth() - genericMargin;
 int upperMargin = 0;

 if (this.getAbsoluteLeft() > rightMargin) 
 {this.setPopupPosition(rightMargin, this.getPopupTop()); }

 if (this.getAbsoluteLeft() < leftMargin) 
  { this.setPopupPosition(leftMargin, this.getPopupTop()); }

 if (this.getAbsoluteTop() > lowerMargin) 
 { this.setPopupPosition(this.getPopupLeft(), lowerMargin);}

 if (this.getAbsoluteTop() < upperMargin) 
 { this.setPopupPosition(this.getPopupLeft(), upperMargin);}

 super.endDragging(event);
}

顺便说一句,它可以正常工作! ;)

关于java - 如何防止GWT对话框被拖出屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12211331/

相关文章:

java - SMARTGWT - 从SectionStackSection 中删除DynamicForm

java - 理解 Java 格式字符串中的 $

java - 用于获取 Java 进程的线程转储的 Shell 脚本

Java while ( 按下按键 )

gwt - 在 tomcat webapps 文件夹中创建临时文件

url - GWT应用程序的基本URL

css - GWT Flextable 和 CSS 对齐单元格底部的旋转文本

java - Hibernate 在 DAO 查询时停止

java - Spring aop与struts2

gwt - 如何禁用 GWT ValueListBox?