SWT Designer简介

来源:互联网 发布:清朗网络手抄报 编辑:程序博客网 时间:2024/05/01 21:32

 

利用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,"错误","用户名或密码为空,请重新输入!");
      }
    });
  }
  
}