泰仔在線

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

          SWT窗口居中

          Posted on 2009-02-26 22:21 泰仔在線 閱讀(1675) 評論(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();
                  }

              }


          }
          主站蜘蛛池模板: 大方县| 临泽县| 平乡县| 镇安县| 孝昌县| 友谊县| 台湾省| 寿阳县| 洞口县| 定边县| 凤阳县| 牡丹江市| 玉树县| 黔南| 辽阳市| 许昌市| 眉山市| 灵山县| 普宁市| 云霄县| 调兵山市| 临安市| 乌审旗| 克拉玛依市| 龙门县| 胶州市| 丹东市| 墨脱县| 扬州市| 威远县| 尤溪县| 新河县| 岚皋县| 乌海市| 铜鼓县| 女性| 浪卡子县| 平原县| 凤山市| 邵东县| 海晏县|