SWT Designer簡介

 

利用SWT Designer 的可視化界面,只需採用拖拉操作,就可以很快地在窗體上創建各種組件,設計出來的窗體和組件的外觀和操作系統平臺下其他軟件的外觀相似,具有本機系統的風格。SWT Designer 可以自動生成Java代碼,利用它的屬性編輯器還可以改變組件的各種屬性,使SWT界面開發變得非常容易。

 

 

SWT Designer 是一種功能強大且容易使用的基於Eclipse SWT技術的圖形用戶界面設計工具,是一個很好的Eclipse的界面開發插件包。利用SWT Designer 的可視化界面,只需採用拖拉操作,就可以很快地在窗體上創建各種組件,設計出來的窗體和組件的外觀和操作系統平臺下其他軟件的外觀相似,具有本機系統的風格。SWT Designer 可以自動生成Java代碼,利用它的屬性編輯器還可以改變組件的各種屬性,使SWT界面開發變得非常容易。

  1.  SWT Designer 的下載和安裝

  SWT Designer 有多個版本,要和相應的Eclipse版本相匹配。我使用的是Designer_v6.7.0_for_Eclipse3.2.zip。安裝步驟如下:

  1.1 下載

  下載版本:Designer_v6.7.0,文件:Designer_v6.7.0_for_Eclipse3.2.zip,下載地址:大家自己搜下,呵呵。

  1.2 安裝

  Designer_v6.7.0_for_Eclipse3.2.zip解壓縮到Eclipse的安裝目錄中。安裝結束後,啓動Eclipse,在主菜單中選擇【文件】→【新建】→【項目】,如果在彈出的“新建項目”對話框中多了一個“Designer”項,則表示SWT Designer 安裝成功。如圖1所示。

  圖1  

  1.3 註冊

  在Eclipse 主菜單中選擇【窗口】→【首選項】,彈出一個對話框,如圖2,單擊左邊樹形目錄中的Designer,然後單擊對話框右下方的【Registration and Activation】按鈕,彈出對話框,如圖4.43 所示,在Serial number欄中輸入產品序列號,在ActivationKey 欄中輸入產品激活號,單擊【完成】,即可激活。

 

 

圖2

  SWT Designer 有免費版、評估版和正式版,免費版只有有限的功能,評估版需要填寫用戶資料和E-mail 地址,從E-mail 中可以獲得Activation Key,評估時限爲2 周。正式版則要購買產品,才能獲得Activation Key。

  2. SWT Designer 開發實例

  本節通過創建一個項目,熟悉一下SWT Designer 的主界面及其相應的組件。操作步驟如下:

  2.1創建SWT/JFaceProject

  在Eclipse 主菜單中選擇【文件】→【新建】→【其他】,彈出“新建”對話框,展開Designer 節點,選擇“SWT/JFace Java Project” (記住:是SWT/JFace Project,不是JavaProject),再單擊【下一步】,出現“創建Java 項目”對話框,輸入項目名,如SWTDesigerTest,單擊【完成】。

  2.2創建Application Window 窗體

  右單擊項目名(SWTDesigerTest),選擇【新建】→【其他】,在“新建”對話框中,展開Designer 節點下的SWT 節點,選擇“Application Window”,再單擊【下一步】,在彈出的對話框中輸入包名和類名,在下方的單選項中選擇“public static main() mathod”, 該選項會自動生成main()方法,使窗體能獨立運行。單擊【完成】。在程序編輯區的下方,有【Source】和【Design】兩個標籤,選擇【Source】標籤,則在程序編輯區中顯示源程序;選擇【Design】標籤,則在程序編輯區中出現一個窗體。

  2.3在窗體中加入組件

  加入2 個標籤組件(Label)、2 個文本框組件(Text)和2 個按鈕組件(Button),如圖4所示。

圖4 SWT Designer 界面

 


 

if(text.getText()!=""|text_1.getText()!="")
  
//調用JFace的信息對話框顯示登錄信息
  
MessageDialog.openInformation(shell,"登錄信息","歡迎"+text.getText()+"進入系統!");
  
else
  
//調用JFace的錯誤對話框顯示出錯信息
  
MessageDialog.openError(shell,"錯誤","用戶名或密碼爲空,請重新輸入!");
  
  由於用到了JFace的對話框,在程序的前面要引入相應的包:
  
import org.eclipse.jface.dialogs.*;
  輸入密碼時要在密碼框顯示“*”,需要添加SWT.PASSWORD選項:
final Text text_1=new Text(shell,SWT.BORDER|SWT.PASSWORD);

 

 

 

  2.5運行程序

  在Eclipse包資源管理器中,右單擊文件名,在彈出的菜單中選擇【運行方式】→【SWT應用程序】,運行結果如圖6所示。輸入用戶名和密碼,點擊【提交】,則出現用戶登錄對話框,如圖7所示。如果用戶名或密碼爲空,則出現錯誤提示對話框,如圖8所示。


 

 

 

  圖6 用戶登錄窗體



  圖7 用戶登錄對話框

 

 

 

 

 

 

 

 

圖8 錯誤信息對話框

  2.6 程序源程序

  源程序

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
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;
import org.eclipse.jface.dialogs.*;
  
public class login {
  
  private Text text_1;
  private Text text;
  protected Shell shell;
  
  /** *//**
   * Launch the application
   * @param args
   */
  public static void main(String[] args) {
    try {
      login window = new login();
      window.open();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  
  /** *//**
   * Open the window
   */
  public void open() {
    final Display display = Display.getDefault();
    createContents();
    shell.open();
    shell.layout();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch())
        display.sleep();
    }
  }
  
  /** *//**
   * Create contents of the window
   */
  protected void createContents() {
    shell = new Shell();
    shell.setSize(411, 359);
    shell.setText("SWT Application");
  
    text = new Text(shell, SWT.BORDER);
    text.setBounds(197, 109, 142, 25);
  
    text_1 = new Text(shell, SWT.BORDER|SWT.PASSWORD);
    text_1.setBounds(197, 173, 142, 25);
  
    final Button button = new Button(shell, SWT.ABORT);
    button.setText("提交");
    button.setBounds(85, 263, 48, 22);
    
    final Button button_1 = new Button(shell, SWT.ABORT);
    button_1.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(final SelectionEvent e)
      {
      }
    });
    button_1.setText("取消");
    button_1.setBounds(247, 263, 48, 22);
    
    final Label label = new Label(shell, SWT.NONE);
    label.setText("用戶名");
    label.setBounds(106, 112, 48, 22);
  
    final Label label_1 = new Label(shell, SWT.NONE);
    label_1.setText("密 碼");
    label_1.setBounds(106, 176, 48, 25);
    
    button.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(final SelectionEvent e)
      {
        if(text.getText()!=""|text_1.getText()!="")
//          調用JFace的對話框顯示登錄信息
          MessageDialog.openInformation(shell,"登錄信息","歡迎"+text.getText()+"進入系統!");
          else
//          調用JFace的對話框顯示出錯信息
          MessageDialog.openError(shell,"錯誤","用戶名或密碼爲空,請重新輸入!");
      }
    });
  }
  
}

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章