使用SWT设计的界面,怎样实现他每次打开的时候居于显示器的中间

解决方案 »

  1.   

    最近也在做一个小的swing项目,刚好碰到过楼主的问题,我是写了一个公用的方法来实现的:
        public static void centerToWindow(Window win) {
         Toolkit kit = Toolkit.getDefaultToolkit();
         Dimension dim =  kit.getScreenSize();
         int frameWidth = win.getWidth();
         int frameHeight = win.getHeight();
         int startX = ((int)dim.getWidth() - frameWidth)/2;
         int startY = ((int)dim.getHeight() - frameHeight)/2;
         win.setLocation(startX, startY);
        }
      

  2.   

    传个你要的frame,dialog等进去就可以了
      

  3.   

    是不是只有这种方法了?就是使用
    Toolkit kit = Toolkit.getDefaultToolkit();
    Dimension dim =  kit.getScreenSize();
    int frameWidth = win.getWidth();
    int frameHeight = win.getHeight();
    int startX = ((int)dim.getWidth() - frameWidth)/2;
    int startY = ((int)dim.getHeight() - frameHeight)/2;
    win.setLocation(startX, startY);
    来控制
      

  4.   

    //处于屏幕或者父窗口的中央,如果c的父窗口为空,则处于屏幕中央
        public static void center(java.awt.Component c) {
            Dimension ownerSize;
            Point ownerLocation;
            if (c.getParent() == null) {
                ownerSize = Toolkit.getDefaultToolkit().getScreenSize();
                ownerLocation = new Point(0, 0);
            } else {
                ownerSize = c.getParent().getSize();
                ownerLocation = c.getParent().getLocation();
                if (ownerSize.height == 0 || ownerSize.width == 0
                        || !c.getParent().isVisible()) {
                    ownerSize = Toolkit.getDefaultToolkit().getScreenSize();
                    ownerLocation = new Point(0, 0);
                }
            }
            //Center the window
            Dimension frameSize = c.getSize();
            if (frameSize.height > ownerSize.height) {
                frameSize.height = ownerSize.height;
            }
            if (frameSize.width > ownerSize.width) {
                frameSize.width = ownerSize.width;
            }
            c.setLocation(
                    ownerLocation.x + (ownerSize.width - frameSize.width) / 2,
                    ownerLocation.y + (ownerSize.height - frameSize.height) / 2);    }