泰仔在線

          java學習,心情日記,繽紛時刻
          posts - 100, comments - 34, trackbacks - 0, articles - 0

          SWT窗口居中

          Posted on 2009-02-26 22:21 泰仔在線 閱讀(1669) 評論(0)  編輯  收藏 所屬分類: Java 相關
          一、使用SWT本身的Display.getClientArea().width. height

                  
          ////
                  loginShell.setLocation(display.getClientArea().width / 2 - loginShell.getSize().x/2, display
                          .getClientArea().height 
          / 2 - loginShell.getSize().y/2);
                  
          ////
          二、使用SWT本身的loginShell.getMonitor().getBounds() 與loginShell.getBounds()
                  ////
                  Monitor primary = loginShell.getMonitor();
                  Rectangle bounds 
          = primary.getBounds();
                  Rectangle rect 
          = loginShell.getBounds();
                  
          int x = bounds.x + (bounds.width - rect.width) / 2;
                  
          int y = bounds.y + (bounds.height - rect.height) / 2;
                  
          if (x < 0)
                      x 
          = 0;
                  
          if (y < 0)
                      y 
          = 0;
                  loginShell.setLocation(x, y);
                  
          ////
          原例:
          package demo;

          import org.eclipse.swt.SWT;
          import org.eclipse.swt.events.MouseAdapter;
          import org.eclipse.swt.events.MouseEvent;
          import org.eclipse.swt.widgets.Button;
          import org.eclipse.swt.widgets.Display;
          import org.eclipse.swt.widgets.Label;
          import org.eclipse.swt.widgets.Shell;
          import org.eclipse.swt.widgets.Text;

          public class Login {

              
          /**
               * Launch the application
               * 
          @param args
               
          */

              
          public static void main(String[] args) {
                  
          final Display display = Display.getDefault();
                  
          final Shell loginShell = new Shell();
                  loginShell.setSize(
          424222);
                  loginShell.setText(
          "Login");
                  
          ////
                  loginShell.setLocation(display.getClientArea().width / 2 - loginShell.getSize().x/2, display
                          .getClientArea().height 
          / 2 - loginShell.getSize().y/2);
                  
          ////
                  loginShell.open();

                  
          final Label label1 = new Label(loginShell, SWT.NONE);
                  label1.setAlignment(SWT.RIGHT);
                  label1.setText(
          "ユーザID:");
                  label1.setBounds(
          101466512);

                  
          final Label label2 = new Label(loginShell, SWT.NONE);
                  label2.setAlignment(SWT.RIGHT);
                  label2.setBounds(
          101816512);
                  label2.setText(
          "パスワード:");

                  
          final Text userName = new Text(loginShell, SWT.BORDER);
                  userName.setBounds(
          1734210520);

                  
          final Text password = new Text(loginShell, SWT.BORDER);
                  password.setBounds(
          1737710520);

                  
          final Button btnLogin = new Button(loginShell, SWT.NONE);
                  btnLogin.addMouseListener(
          new MouseAdapter() {
                      
          public void mouseDown(MouseEvent e) {
                          
          try {
                              MaterialUpload window 
          = new MaterialUpload();
                              loginShell.close();
                              window.open();
                          }
           catch (Exception ex) {
                              ex.printStackTrace();
                          }

                      }

                  }
          );
                  btnLogin.setText(
          "ログイン");
                  btnLogin.setBounds(
          1011305922);

                  
          final Button btnClear = new Button(loginShell, SWT.NONE);
                  btnClear.addMouseListener(
          new MouseAdapter() {
                      
          public void mouseDown(MouseEvent arg0) {
                          userName.setText(
          "");
                          password.setText(
          "");
                      }

                  }
          );
                  btnClear.setText(
          "クリア");
                  btnClear.setBounds(
          1831305922);

                  
          final Button btnClose = new Button(loginShell, SWT.NONE);
                  btnClose.addMouseListener(
          new MouseAdapter() {
                      
          public void mouseDown(MouseEvent arg0) {
                          loginShell.close();
                      }

                  }
          );
                  btnClose.setBounds(
          2641305922);
                  btnClose.setText(
          "閉じる");
                  loginShell.layout();
                  
          while (!loginShell.isDisposed()) {
                      
          if (!display.readAndDispatch())
                          display.sleep();
                  }

              }


          }
          主站蜘蛛池模板: 浦东新区| 彭阳县| 万年县| 安顺市| 嘉鱼县| 仁化县| 宁河县| 泰顺县| 陆丰市| 益阳市| 建水县| 罗平县| 云南省| 天水市| 屏东县| 鄯善县| 简阳市| 德州市| 南漳县| 靖宇县| 楚雄市| 荆州市| 开化县| 吴堡县| 莆田市| 沽源县| 内江市| 桐柏县| 长治市| 嘉禾县| 屯门区| 淮阳县| 共和县| 灯塔市| 开封市| 沂源县| 无为县| 龙海市| 阿拉善盟| 同江市| 滨州市|