一、使用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) );}
转载请注明原文地址: https://ibbs.8miu.com/read-30005.html