一、使用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) ); }
posted on 2007-12-25 14:21 阿南 阅读(1598) 评论(2) 编辑 收藏