程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> SWT Designer簡介

SWT Designer簡介

編輯:關於JAVA

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,"錯誤","用戶名或密碼為空,請重新輸入 !");
      }
    });
  }

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved