SWT通讯录演示 : 小应用程序 « SWT-JFace-Eclipse « Java

En
Java
1. 图形用户界面
2. 三维图形动画
3. 高级图形
4. 蚂蚁编译
5. Apache类库
6. 统计图
7. 
8. 集合数据结构
9. 数据类型
10. 数据库JDBC
11. 设计模式
12. 开发相关类
13. EJB3
14. 电子邮件
15. 事件
16. 文件输入输出
17. 游戏
18. 泛型
19. GWT
20. Hibernate
21. 本地化
22. J2EE平台
23. 基于J2ME
24. JDK-6
25. JNDI的LDAP
26. JPA
27. JSP技术
28. JSTL
29. 语言基础知识
30. 网络协议
31. PDF格式RTF格式
32. 映射
33. 常规表达式
34. 脚本
35. 安全
36. Servlets
37. Spring
38. Swing组件
39. 图形用户界面
40. SWT-JFace-Eclipse
41. 线程
42. 应用程序
43. Velocity
44. Web服务SOA
45. 可扩展标记语言
Java 教程
Java » SWT-JFace-Eclipse » 小应用程序屏幕截图 
SWT通讯录演示
SWT通讯录演示


import java.util.ArrayList;

import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;

public class AddressBookDemo extends ApplicationWindow {
  private static ArrayList contactList;

  private static TableViewer tableViewer;

  private Table table;

  public AddressBookDemo() {
    super(null);
    this.addMenuBar();

    contactList = new ArrayList();
  }

  protected Control createContents(Composite parent) {
    Shell shell = this.getShell();
    shell.setText("Personal Address Book");
    shell.setSize(500300);

    SashForm form new SashForm(parent, SWT.HORIZONTAL | SWT.NULL);

    table = new Table(form, SWT.FULL_SELECTION | SWT.BORDER);

    TableColumn column = new TableColumn(table, SWT.LEFT);
    column.setText("Name");
    column.setWidth(150);
    table.setHeaderVisible(true);

    column = new TableColumn(table, SWT.LEFT);
    column.setText("E-Mail Address");
    column.setWidth(125);
    table.setHeaderVisible(true);

    column = new TableColumn(table, SWT.LEFT);
    column.setText("Business Phone");
    column.setWidth(100);
    table.setHeaderVisible(true);

    column = new TableColumn(table, SWT.LEFT);
    column.setText("Home Phone");
    column.setWidth(100);
    table.setHeaderVisible(true);

    tableViewer = new TableViewer(table);

    return form;
  }

  public static void main(String[] args) {
    AddressBookDemo book = new AddressBookDemo();

    book.setBlockOnOpen(true);
    book.open();

    Display.getCurrent().dispose();
  }

  protected MenuManager createMenuManager() {
    MenuManager bar = new MenuManager("");

    MenuManager fileMenu = new MenuManager("&File");
    MenuManager helpMenu = new MenuManager("&Help");

    bar.add(fileMenu);
    bar.add(helpMenu);

    fileMenu.add(new NewContactAction(this));
    fileMenu.add(new ExitAction(this));

    helpMenu.add(new AboutAction(this));

    return bar;
  }

  public static void addContact(Contact c) {
    getContactList().add(c);

    Table table = tableViewer.getTable();

    TableItem item = new TableItem(table, SWT.NULL);
    item.setText(0, c.getGivenName() " " + c.getFamilyName());
    item.setText(1, c.getEmailAddress());
    item.setText(2, c.getBusinessPhone());
    item.setText(3, c.getHomePhone());
  }

  public static ArrayList getContactList() {
    return contactList;
  }

  public static TableViewer getTbv() {
    return tableViewer;
  }

  public static void setContactList(ArrayList list) {
    contactList = list;
  }

  public static void setTbv(TableViewer viewer) {
    tableViewer = viewer;
  }
}

class Contact {
  private String givenName;

  private String familyName;

  private String addressLine1;

  private String addressLine2;

  private String city;

  private String state;

  private String zipCode;

  private String businessPhone;

  private String homePhone;

  private String emailAddress;

  public Contact() {
    this.givenName = "";
    this.familyName = "";
    this.addressLine1 = "";
    this.addressLine2 = "";
    this.city = "";
    this.state = "";
    this.zipCode = "";
    this.businessPhone = "";
    this.homePhone = "";
    this.emailAddress = "";
  }

  public String getFamilyName() {
    return familyName;
  }

  public String getGivenName() {
    return givenName;
  }

  public void setFamilyName(String string) {
    familyName = string;
  }

  public void setGivenName(String string) {
    givenName = string;
  }

  public String getAddressLine1() {
    return addressLine1;
  }

  public String getAddressLine2() {
    return addressLine2;
  }

  public String getCity() {
    return city;
  }

  public String getState() {
    return state;
  }

  public String getZipCode() {
    return zipCode;
  }

  public void setAddressLine1(String string) {
    addressLine1 = string;
  }

  public void setAddressLine2(String string) {
    addressLine2 = string;
  }

  public void setCity(String string) {
    city = string;
  }

  public void setState(String string) {
    state = string;
  }

  public void setZipCode(String string) {
    zipCode = string;
  }

  public String getBusinessPhone() {
    return businessPhone;
  }

  public String getHomePhone() {
    return homePhone;
  }

  public void setBusinessPhone(String string) {
    businessPhone = string;
  }

  public void setHomePhone(String string) {
    homePhone = string;
  }

  public String getEmailAddress() {
    return emailAddress;
  }

  public void setEmailAddress(String string) {
    emailAddress = string;
  }
}

class NewContactAction extends Action {
  ApplicationWindow window;

  public NewContactAction(ApplicationWindow w) {
    window = w;
    this.setText("New Contact");
    this.setToolTipText("Create new contact");
  }

  public void run() {
    ContactWizard wizard = new ContactWizard();

    WizardDialog dialog = new WizardDialog(window.getShell(), wizard);
    dialog.open();
  }
}

class ExitAction extends Action {
  ApplicationWindow window;

  public ExitAction(ApplicationWindow w) {
    window = w;
    this.setText("E&xit");

    this.setToolTipText("Exit the application");
  }

  public void run() {
    window.close();
  }
}

class AboutAction extends Action {
  ApplicationWindow window;

  public AboutAction(ApplicationWindow w) {
    window = w;
    this.setText("&About Address Book");

    this.setToolTipText("Exit the application");
  }

  public void run() {
    MessageDialog.openInformation(Display.getCurrent().getActiveShell(),
        "About Address Book""IBM developerWorks");
  }
}

class AddressContactPage extends WizardPage {
  private static String[] STATES = "Alabama""Alaska""Arizona",
      "Arkansas""California""Colorado""Connecticut""Delaware",
      "District of Columbia""Florida""Georgia""Hawaii""Idaho",
      "Illinois""Indiana""Iowa""Kansas""Kentucky""Louisiana",
      "Maine""Maryland""Massachusetts""Michigan""Minnesota",
      "Mississippi""Missouri""Montana""Nebraska""Nevada",
      "New England""New Hampshire""New Jersey""New Mexico",
      "New York""North Carolina""North Dakota""Ohio""Oklahoma",
      "Oregon""Pennsylvania""Rhode Island""South Carolina",
      "South Dakota""Tennessee""Texas""Utah""Vermont",
      "Virginia""Washington""West Virginia""Wisconsin""Wyoming" };

  private Text addressLine1Text;

  private Text addressLine2Text;

  private Text cityText;

  private Text zipCodeText;

  private Combo stateCombo;

  private ISelection selection;

  private boolean isDisplaySet = false;

  public AddressContactPage(ISelection selection) {
    super("wizardPage");
    setTitle("New Contact");
    setDescription("This wizard creates a new contact.");
    this.selection = selection;
  }

  public void createControl(Composite parent) {
    Composite container = new Composite(parent, SWT.NULL);
    GridLayout layout = new GridLayout();
    container.setLayout(layout);
    layout.numColumns = 2;
    layout.verticalSpacing = 9;

    Label label = new Label(container, SWT.NULL);
    label.setText("&Address Line 1:");

    addressLine1Text = new Text(container, SWT.BORDER | SWT.MULTI);

    GridData gd = new GridData(GridData.FILL_HORIZONTAL);
    addressLine1Text.setLayoutData(gd);
    addressLine1Text.addModifyListener(new ModifyListener() {
      public void modifyText(ModifyEvent e) {
        dialogChanged();
      }
    });

    label = new Label(container, SWT.NULL);
    label.setText("&Address Line 2:");

    addressLine2Text = new Text(container, SWT.BORDER | SWT.SINGLE);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    addressLine2Text.setLayoutData(gd);
    addressLine2Text.addModifyListener(new ModifyListener() {
      public void modifyText(ModifyEvent e) {
        dialogChanged();
      }
    });

    label = new Label(container, SWT.NULL);
    label.setText("&City:");

    cityText = new Text(container, SWT.BORDER | SWT.SINGLE);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    cityText.setLayoutData(gd);

    label = new Label(container, SWT.NULL);
    label.setText("&State:");

    stateCombo = new Combo(container, SWT.BORDER | SWT.SINGLE);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    stateCombo.setLayoutData(gd);
    stateCombo.setItems(STATES);

    label = new Label(container, SWT.NULL);
    label.setText("&Zip Code:");

    zipCodeText = new Text(container, SWT.BORDER | SWT.SINGLE);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    zipCodeText.setLayoutData(gd);

    // dialogChanged();
    setControl(container);
  }

  private void dialogChanged() {
    if (this.getGivenName().length() == 0) {
      updateStatus("Given name must be specified.");

      return;
    }

    if (this.getFamilyName().length() == 0) {
      updateStatus("Family name must be specified.");

      return;
    }

    updateStatus(null);
  }

  private void updateStatus(String message) {
    setErrorMessage(message);
    setPageComplete(message == null);
  }

  public String getFamilyName() {
    return addressLine2Text.getText();
  }

  public String getGivenName() {
    return addressLine1Text.getText();
  }

  public String getNickName() {
    return cityText.getText();
  }

  public String getBusinessPhone() {
    return zipCodeText.getText();
  }

  public void setNickName(String name) {
    cityText.setText(name);
  }

  private void createLine(Composite parent, int ncol) {
    Label line = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL
        | SWT.BOLD);
    GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.horizontalSpan = ncol;
    line.setLayoutData(gridData);
  }
}

class ContactWizard extends Wizard {
  private BasicContactPage page1;

  private AddressContactPage page2;

  private ISelection selection;

  public ContactWizard() {
    super();
    setNeedsProgressMonitor(true);
  }

  public void addPages() {
    page1 = new BasicContactPage(selection);
    page2 = new AddressContactPage(selection);
    addPage(page1);
    addPage(page2);
  }

  public boolean performFinish() {
    Contact contact = new Contact();
    contact.setFamilyName(page1.getFamilyName());
    contact.setGivenName(page1.getGivenName());
    contact.setBusinessPhone(page1.getBusinessPhone());
    contact.setHomePhone(page1.getHomePhone());
    contact.setEmailAddress(page1.getEmail());

    AddressBookDemo.addContact(contact);

    return true;
  }
}

class BasicContactPage extends WizardPage {
  private Text givenNameText;

  private Text familyNameText;

  private Text nickNameText;

  private Text businessPhoneText;

  private Text homePhoneText;

  private Text emailText;

  private ISelection selection;

  public BasicContactPage(ISelection selection) {
    super("wizardPage");
    setTitle("New Contact");
    setDescription("This wizard creates a new contact.");
    this.selection = selection;
  }

  public void createControl(Composite parent) {
    Composite container = new Composite(parent, SWT.NULL);
    GridLayout layout = new GridLayout();
    container.setLayout(layout);
    layout.numColumns = 2;
    layout.verticalSpacing = 9;

    Label label = new Label(container, SWT.NULL);
    label.setText("&Given Name:");

    givenNameText = new Text(container, SWT.BORDER | SWT.SINGLE);

    GridData gd = new GridData(GridData.FILL_HORIZONTAL);
    givenNameText.setLayoutData(gd);
    givenNameText.addModifyListener(new ModifyListener() {
      public void modifyText(ModifyEvent e) {
        dialogChanged();
      }
    });

    label = new Label(container, SWT.NULL);
    label.setText("&Family Name:");

    familyNameText = new Text(container, SWT.BORDER | SWT.SINGLE);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    familyNameText.setLayoutData(gd);
    familyNameText.addModifyListener(new ModifyListener() {
      public void modifyText(ModifyEvent e) {
        dialogChanged();
      }
    });

    label = new Label(container, SWT.NULL);
    label.setText("&Nickname:");

    nickNameText = new Text(container, SWT.BORDER | SWT.SINGLE);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    nickNameText.setLayoutData(gd);

    createLine(container, layout.numColumns);

    label = new Label(container, SWT.NULL);
    label.setText("&Business Phone:");

    businessPhoneText = new Text(container, SWT.BORDER | SWT.SINGLE);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    businessPhoneText.setLayoutData(gd);

    label = new Label(container, SWT.NULL);
    label.setText("&Home Phone:");

    homePhoneText = new Text(container, SWT.BORDER | SWT.SINGLE);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    homePhoneText.setLayoutData(gd);

    createLine(container, layout.numColumns);

    label = new Label(container, SWT.NULL);
    label.setText("&E-Mail Address:");

    emailText = new Text(container, SWT.BORDER | SWT.SINGLE);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    emailText.setLayoutData(gd);
    emailText.addModifyListener(new ModifyListener() {
      public void modifyText(ModifyEvent e) {
        dialogChanged();
      }
    });

    // dialogChanged();
    setControl(container);
  }

  private void dialogChanged() {
    if (this.getGivenName().length() == 0) {
      updateStatus("Given name must be specified.");

      return;
    }

    if (this.getFamilyName().length() == 0) {
      updateStatus("Family name must be specified.");

      return;
    }

    if (this.getEmail().length() 0) {
      if (this.getEmail().indexOf("@"0) {
        updateStatus("Please enter a complete email address in the form yourname@yourdomain.com");

        return;
      }
    }

    updateStatus(null);
  }

  private void updateStatus(String message) {
    setErrorMessage(message);
    setPageComplete(message == null);
  }

  public String getFamilyName() {
    return familyNameText.getText();
  }

  public String getGivenName() {
    return givenNameText.getText();
  }

  public String getNickName() {
    return nickNameText.getText();
  }

  public String getBusinessPhone() {
    return businessPhoneText.getText();
  }

  public String getHomePhone() {
    return homePhoneText.getText();
  }

  public String getEmail() {
    return emailText.getText();
  }

  public void setNickName(String name) {
    nickNameText.setText(name);
  }

  private void createLine(Composite parent, int ncol) {
    Label line = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL
        | SWT.BOLD);
    GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.horizontalSpan = ncol;
    line.setLayoutData(gridData);
  }
}


           
       
Related examples in the same category
1. SWT所有控件SWT所有控件
2. SWT文本编辑器
3. 小应用程序:图书馆
4. FTP客户端
5. This application has save,load, sorting, and searching functions common to basic address booksThis application has save,load, sorting, and searching functions common to basic address books
6. SWT形状
7. 窗口部件测试2窗口部件测试2
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.