Text Event : Text « SWT JFace Eclipse « Java






Text Event

Text Event

/******************************************************************************
 * Copyright (c) 1998, 2004 Jackwind Li Guojie
 * All right reserved. 
 * 
 * Created on Jan 16, 2004 1:23:25 AM by JACK
 * $Id$
 * 
 * visit: http://www.asprise.com/swt
 *****************************************************************************/

import org.eclipse.swt.SWT;
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.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

public class TemperatureConverter {
  Display display = new Display();
  Shell shell = new Shell(display);

  Label fahrenheitLabel;
  Label celsiusLabel;
  Label messageLabel;

  Text fahrenheitValue;
  Text celsiusValue;

  public TemperatureConverter() {
    shell.setText("SWT Temperature Converter");
    shell.setLayout(new GridLayout(4, false));

    fahrenheitLabel = new Label(shell, SWT.NULL);
    fahrenheitLabel.setText("Fahrenheit: ");

    fahrenheitValue = new Text(shell, SWT.SINGLE | SWT.BORDER);

    celsiusLabel = new Label(shell, SWT.NULL);
    celsiusLabel.setText("Celsius: ");

    celsiusValue = new Text(shell, SWT.SINGLE | SWT.BORDER);
    
    messageLabel = new Label(shell, SWT.BORDER);
    GridData gridData = new GridData(GridData.FILL_BOTH);
    gridData.horizontalSpan = 4;
    messageLabel.setLayoutData(gridData);

    ModifyListener listener = new ModifyListener() {
      public void modifyText(ModifyEvent e) {
        valueChanged((Text) e.widget);
      }
    };

    fahrenheitValue.addModifyListener(listener);
    celsiusValue.addModifyListener(listener);

    shell.pack();
    shell.open();

    // Set up the event loop.
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        // If no more entries in event queue
        display.sleep();
      }
    }

    display.dispose();
  }

  /**
   * Performs conversion when one of the text fields changes.
   * 
   * @param text
   *            the event source
   */
  public void valueChanged(Text text) {
    if (!text.isFocusControl())
      return;

    if (text == fahrenheitValue) {
      try {
        double fValue = Double.parseDouble(text.getText());
        double cValue = (fValue - 32) / 1.8;
        celsiusValue.setText(Double.toString(cValue));
        System.out.println("F -> C: " + cValue);
        messageLabel.setText("Conversion performed successfully.");
      } catch (NumberFormatException e) {
        celsiusValue.setText("");
        messageLabel.setText("Invalid number format: " + text.getText());
      }
    } else {
      try {
        double cValue = Double.parseDouble(text.getText());
        double fValue = cValue * 1.8 + 32;
        fahrenheitValue.setText(Double.toString(fValue));
        System.out.println("C -> F: " + fValue);
        messageLabel.setText("Conversion performed successfully.");
      } catch (NumberFormatException e) {
        fahrenheitValue.setText("");
        messageLabel.setText("Invalid number format: " + text.getText());
      }
    }
  }

  public static void main(String[] args) {
    new TemperatureConverter();
  }
}


           
       








Related examples in the same category

1.Text to uppercase
2.Text and Label demoText and Label demo
3.Wrap LinesWrap Lines
4.Remarks TextRemarks Text
5.Demonstrates text fieldsDemonstrates text fields
6.Demonstrates multiline comments
7.Turns e characters red using a LineStyleListenerTurns e characters red using a LineStyleListener
8.TextField Example 5TextField Example 5
9.TextField Example 4
10.TextField Example 3TextField Example 3
11.TextField Example 2TextField Example 2
12.TextField ExampleTextField Example
13.SWT XML Editor: Modify DOMSWT XML Editor: Modify DOM
14.Draw internationalized styled text on a shellDraw internationalized styled text on a shell
15.Detect when the user scrolls a text controlDetect when the user scrolls a text control
16.Verify input (format for date)Verify input (format for date)
17.Verify input (only allow digits)Verify input (only allow digits)
18.Set the selection (start, end)Set the selection (start, end)
19.Text example snippet: set the selection (i-beam)Text example snippet: set the selection (i-beam)
20.Select all the text in the controlSelect all the text in the control
21.Resize a text control (show about 10 characters)Resize a text control (show about 10 characters)
22.Prompt for a password (set the echo character)Prompt for a password (set the echo character)
23.Stop CR from going to the default buttonStop CR from going to the default button
24.Add a select all menu item to the controlAdd a select all menu item to the control
25.Detect CR in a text or combo control (default selection)Detect CR in a text or combo control (default selection)