SWT编写界面窗口时让窗口处于屏幕中间

来源:互联网 发布:安卓应用推荐 知乎 编辑:程序博客网 时间:2024/05/17 21:17

一、使用SWT本身

import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class LayoutUtil ...{  public static void centerShell(Display display,Shell shell)...{         Rectangle displayBounds = display.getPrimaryMonitor().getBounds();         Rectangle shellBounds = shell.getBounds();  int x = displayBounds.x + (displayBounds.width - shellBounds.width)>>1;  int y = displayBounds.y + (displayBounds.height - shellBounds.height)>>1;         shell.setLocation(x, y);     } }

直接调用LayoutUtil.centerShell(Display display,Shell shell)即可使SWT窗口处于屏幕中央,其中,shell 要显示的Shell对象。 
二、借助AWT包里面获取屏幕大小的方法

import java.awt.Toolkit; /** *//** * 在屏幕中间显示Shell * @param shell 要显示的Shell对象 */ private void centerShell(Shell shell) ...{  //得到屏幕的宽度和高度  int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;  int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;  //得到Shell窗口的宽度和高度  int shellHeight = shell.getBounds().height;  int shellWidth = shell.getBounds().width;  //如果窗口大小超过屏幕大小,让窗口与屏幕等大  if(shellHeight > screenHeight)                    shellHeight = screenHeight;  if(shellWidth > screenWidth)                   shellWidth = screenWidth;  //让窗口在屏幕中间显示         shell.setLocation(( (screenWidth - shellWidth) / 2),((screenHeight - shellHeight) / 2) ); } 

0 0