打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SWT无边框窗体实现鼠标拖动移动
package dragWindow; 
 
import org.eclipse.jface.action.Action; 
import org.eclipse.jface.action.MenuManager; 
import org.eclipse.jface.window.ApplicationWindow; import org.eclipse.swt.SWT; 
import org.eclipse.swt.events.MenuDetectEvent; import org.eclipse.swt.events.MenuDetectListener; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.events.MouseMoveListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Menu; 
import org.eclipse.swt.widgets.Shell;  
public class DragWindow extends ApplicationWindow implements MouseListener,   
MouseMoveListener, MenuDetectListener { 
  private Composite composite;  private boolean isDraw = false;  private int xx;  private int yy; 
  public DragWindow(Shell parentShell) {   super(parentShell); 
  setShellStyle(SWT.BORDER | SWT.RESIZE);  } 
  @Override 
 protected void configureShell(Shell shell) {   super.configureShell(shell);   shell.setSize(200, 300); 
 } 
  @Override 
 protected Control createContents(Composite parent) {   composite = new Composite(parent, SWT.NONE);   composite.setLayout(new GridLayout());   GridData gridData = new GridData(); 
  gridData.verticalAlignment = GridData.FILL;  
 
gridData.horizontalAlignment = GridData.FILL; 



          




    void function(e,t){for(var n=t.getElementsByTagName("img"),a=+new Date,i=[],o=function(){this.removeEventListener&&this.removeEventListener("load",o,!1),i.push({img:this,time:+new Date})},s=0;s< n.length;s++)!function(){var e=n[s];e.addEventListener?!e.complete&&e.addEventListener("load",o,!1):e.attachEvent&&e.attachEvent("onreadystatechange",function(){"complete"==e.readyState&&o.call(e,o)})}();alog("speed.set",{fsItems:i,fs:a})}(window,document);




  gridData.grabExcessHorizontalSpace = true;   gridData.grabExcessVerticalSpace = true;   composite.setLayoutData(gridData);   composite.addMouseListener(this); 
  composite.addMouseMoveListener(this);   composite.addMenuDetectListener(this);   return composite; 
 } 
  @Override 
 public void mouseMove(MouseEvent arg0) {   if (isDraw) {    getShell().setLocation(getShell().getLocation().x + arg0.x - xx,      getShell().getLocation().y + arg0.y - yy); 
  } 
 } 
  @Override 
 public void mouseDoubleClick(MouseEvent arg0) {  } 
  @Override 
 public void mouseDown(MouseEvent arg0) {   isDraw = true;   xx = arg0.x;   yy = arg0.y; 
 } 
  @Override 
 public void mouseUp(MouseEvent arg0) {   isDraw = false; 
 } 
  @Override 
 public void menuDetected(MenuDetectEvent arg0) {   MenuManager manager = new MenuManager();   manager.add(new CloseAction()); 
  Menu menu = manager.createContextMenu(composite); 
  menu.setLocation(arg0.x, arg0.y);   menu.setVisible(true); 
 } 
  private class CloseAction extends Action {  
 public CloseAction() { 




 var cpro_psid ="u2572954"; var cpro_pswidth =966; var cpro_psheight =120;







   super("Close"); 
  } 
   @Override 
  public void run() {    close(); 
  } 
  } 
  public static void main(String[] args) {   DragWindow window = new DragWindow(new Shell());   window.setBlockOnOpen(true);   window.open(); 
 } 
 }
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SWT的状态栏和进度条的实例
(DM)用户登陆对话框(LoginDialog)
Preferences扩展点及其使用心得
Understanding Layouts in SWT
SWT(JFace) Wizard(Eclipse插件编程必备)
JAVA.SWT/JFace: SWT布局管理器
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服