演示事件的监听程序 : 事件 « 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 » 事件屏幕截图 
演示事件的监听程序
演示事件的监听程序


//Send questions, comments, bug reports, etc. to the authors:

//Rob Warner (rwarner@interspatial.com)
//Robert Harris (rbrt_harris@yahoo.com)

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;

/**
 * This class demonstrates various listeners
 */
public class MultipleListenersExample implements HelpListener, VerifyListener,
    ModifyListener {

  // Constants used for conversions
  private static final double FIVE_NINTHS = 5.0 9.0;
  private static final double NINE_FIFTHS = 9.0 5.0;

  // Widgets used in the window
  private Text fahrenheit;
  private Text celsius;
  private Label help;

  /**
   * Runs the application
   */
  public void run() {
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setText("Temperatures");
    createContents(shell);
    shell.pack();
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        display.sleep();
      }
    }
    display.dispose();
  }

  /**
   * Create the main window's contents
   @param shell the main window
   */
  private void createContents(Shell shell) {
    shell.setLayout(new GridLayout(3true));

    // Create the label and input box for Fahrenheit
    new Label(shell, SWT.LEFT).setText("Fahrenheit:");
    fahrenheit = new Text(shell, SWT.BORDER);
    GridData data = new GridData(GridData.FILL_HORIZONTAL);
    data.horizontalSpan = 2;
    fahrenheit.setLayoutData(data);

    // Set the context-sensitive help
    fahrenheit.setData("Type a temperature in Fahrenheit");

    // Add the listeners
    fahrenheit.addHelpListener(this);
    fahrenheit.addVerifyListener(this);
    fahrenheit.addModifyListener(this);

    // Create the label and input box for Celsius
    new Label(shell, SWT.LEFT).setText("Celsius:");
    celsius = new Text(shell, SWT.BORDER);
    data = new GridData(GridData.FILL_HORIZONTAL);
    data.horizontalSpan = 2;
    celsius.setLayoutData(data);

    // Set the context-sensitive help
    celsius.setData("Type a temperature in Celsius");

    // Add the listeners
    celsius.addHelpListener(this);
    celsius.addVerifyListener(this);
    celsius.addModifyListener(this);

    // Create the area for help
    help = new Label(shell, SWT.LEFT | SWT.BORDER);
    data = new GridData(GridData.FILL_HORIZONTAL);
    data.horizontalSpan = 3;
    help.setLayoutData(data);
  }

  /**
   * Called when user requests help
   */
  public void helpRequested(HelpEvent event) {
    // Get the help text from the widget and set it into the help label
    help.setText((Stringevent.widget.getData());
  }

  /**
   * Called when the user types into a text box, but before the text box gets
   * what the user typed
   */
  public void verifyText(VerifyEvent event) {
    // Assume we don't allow it
    event.doit = false;

    // Get the character typed
    char myChar = event.character;
    String text = ((Textevent.widget).getText();

    // Allow '-' if first character
    if (myChar == '-' && text.length() == 0event.doit = true;

    // Allow 0-9
    if (Character.isDigit(myChar)) event.doit = true;

    // Allow backspace
    if (myChar == '\b'event.doit = true;
  }

  /**
   * Called when the user modifies the text in a text box
   */
  public void modifyText(ModifyEvent event) {
    // Remove all the listeners, so we don't enter any infinite loops
    celsius.removeVerifyListener(this);
    celsius.removeModifyListener(this);
    fahrenheit.removeVerifyListener(this);
    fahrenheit.removeModifyListener(this);

    // Get the widget whose text was modified
    Text text = (Textevent.widget;

    try {
      // Get the modified text
      int temp = Integer.parseInt(text.getText());

      // If they modified fahrenheit, convert to Celsius
      if (text == fahrenheit) {
        celsius.setText(String.valueOf((int) (FIVE_NINTHS * (temp - 32))));
      else {
        // Convert to fahrenheit
        fahrenheit.setText(String.valueOf((int) (NINE_FIFTHS * temp + 32)));
      }
    catch (NumberFormatException e) { /* Ignore */ }

    // Add the listeners back
    celsius.addVerifyListener(this);
    celsius.addModifyListener(this);
    fahrenheit.addVerifyListener(this);
    fahrenheit.addModifyListener(this);
  }

  /**
   * The application entry point
   @param args the command line arguments
   */
  public static void main(String[] args) {
    new MultipleListenersExample().run();
  }
}


           
       
Related examples in the same category
1. ModifyEvent :温度转换JFaceModifyEvent :温度转换JFace
2. Mouse Event Listener Mouse Event Listener
3. 事件处理工具类
4. 演示鼠标事件演示鼠标事件
5. 演示ControlListeners演示ControlListeners
6. SelectionListener和DisposeListenerSelectionListener和DisposeListener
7. 演示FocusListener演示FocusListener
8. 演示LineBackgroundListeners演示LineBackgroundListeners
9. 键盘事件监听
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.