泰仔在線

          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();
                  }

              }


          }
          主站蜘蛛池模板: 文安县| 甘洛县| 中卫市| 商水县| 三台县| 南岸区| 长岭县| 定南县| 南江县| 库尔勒市| 苏州市| 龙山县| 吴川市| 铜川市| 富源县| 陆良县| 喜德县| 怀集县| 海盐县| 辽宁省| 博客| 银川市| 永川市| 大庆市| 循化| 西乡县| 资源县| 徐州市| 永川市| 康保县| 玉林市| 尚义县| 鄱阳县| 白玉县| 博乐市| 黄浦区| 金坛市| 永安市| 十堰市| 东安县| 绥阳县|