<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSWT%2FText_Event</id>
		<title>Java Tutorial/SWT/Text Event - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSWT%2FText_Event"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/SWT/Text_Event&amp;action=history"/>
		<updated>2026-04-07T04:37:22Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/SWT/Text_Event&amp;diff=3021&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/SWT/Text_Event&amp;diff=3021&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:26Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 17:44, 31 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/SWT/Text_Event&amp;diff=3022&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/SWT/Text_Event&amp;diff=3022&amp;oldid=prev"/>
				<updated>2010-05-31T15:19:55Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Add default selection listener to Text ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.layout.RowLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Event;&lt;br /&gt;
import org.eclipse.swt.widgets.Listener;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.Text;&lt;br /&gt;
public class TextSelectionListener {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    shell.setLayout(new RowLayout());&lt;br /&gt;
    Text text = new Text (shell, SWT.SINGLE | SWT.BORDER);&lt;br /&gt;
    text.setText (&amp;quot;some text&amp;quot;);&lt;br /&gt;
    text.addListener (SWT.DefaultSelection, new Listener () {&lt;br /&gt;
      public void handleEvent (Event e) {&lt;br /&gt;
        System.out.println (e.widget + &amp;quot; - Default Selection&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    shell.pack();&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Add events to Text: MouseDown, MouseMove, MouseUp, KeyDown, KeyUp Resize ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.graphics.Point;&lt;br /&gt;
import org.eclipse.swt.layout.FillLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Event;&lt;br /&gt;
import org.eclipse.swt.widgets.Listener;&lt;br /&gt;
import org.eclipse.swt.widgets.ScrollBar;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.Text;&lt;br /&gt;
public class TextEventMouseDownMoveUpKey {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    shell.setLayout(new FillLayout());&lt;br /&gt;
    final Text text = new Text(shell, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);&lt;br /&gt;
    for (int i = 0; i &amp;lt; 100; i++) {&lt;br /&gt;
      text.append(i + &amp;quot;\n&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    text.setSelection(0);&lt;br /&gt;
    Listener listener = new Listener() {&lt;br /&gt;
      int lastIndex = text.getTopIndex();&lt;br /&gt;
      public void handleEvent(Event e) {&lt;br /&gt;
        int index = text.getTopIndex();&lt;br /&gt;
        if (index != lastIndex) {&lt;br /&gt;
          lastIndex = index;&lt;br /&gt;
          System.out.println(&amp;quot;Scrolled, topIndex=&amp;quot; + index);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    /* NOTE: Only detects scrolling by the user */&lt;br /&gt;
    text.addListener(SWT.MouseDown, listener);&lt;br /&gt;
    text.addListener(SWT.MouseMove, listener);&lt;br /&gt;
    text.addListener(SWT.MouseUp, listener);&lt;br /&gt;
    text.addListener(SWT.KeyDown, listener);&lt;br /&gt;
    text.addListener(SWT.KeyUp, listener);&lt;br /&gt;
    text.addListener(SWT.Resize, listener);&lt;br /&gt;
    shell.pack();&lt;br /&gt;
    Point size = shell.ruputeSize(SWT.DEFAULT, SWT.DEFAULT);&lt;br /&gt;
    shell.setSize(size.x - 32, size.y / 2);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Add focus in/out event to Text ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.widgets.Canvas;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Event;&lt;br /&gt;
import org.eclipse.swt.widgets.Listener;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.Text;&lt;br /&gt;
public class FocusEventInOut {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    &lt;br /&gt;
    Text t = new Text(shell, SWT.SINGLE | SWT.BORDER);&lt;br /&gt;
    t.setBounds(10, 85, 100, 32);&lt;br /&gt;
    Text t2 = new Text(shell, SWT.SINGLE | SWT.BORDER);&lt;br /&gt;
    t2.setBounds(10, 25, 100, 32);&lt;br /&gt;
    t2.addListener(SWT.FocusIn, new Listener() {&lt;br /&gt;
      public void handleEvent(Event e) {&lt;br /&gt;
        System.out.println(&amp;quot;focus in&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    t2.addListener(SWT.FocusOut, new Listener() {&lt;br /&gt;
      public void handleEvent(Event e) {&lt;br /&gt;
       System.out.println(&amp;quot;focus out&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    &lt;br /&gt;
    shell.setSize(200, 200);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Add KeyEvent listener to Text ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Event;&lt;br /&gt;
import org.eclipse.swt.widgets.Listener;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.Text;&lt;br /&gt;
public class TextKeyEventListener {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    Text t = new Text(shell, SWT.SINGLE | SWT.BORDER);&lt;br /&gt;
    t.setBounds(10, 85, 100, 32);&lt;br /&gt;
    Text t2 = new Text(shell, SWT.SINGLE | SWT.BORDER);&lt;br /&gt;
    t2.setBounds(10, 25, 100, 32);&lt;br /&gt;
    t2.addListener(SWT.KeyDown, new Listener() {&lt;br /&gt;
      public void handleEvent(Event e) {&lt;br /&gt;
        System.out.println(&amp;quot;KEY&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    shell.setSize(200, 200);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Detect when the user scrolls a text control ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*******************************************************************************&lt;br /&gt;
 * Copyright (c) 2000, 2005 IBM Corporation and others. All rights reserved.&lt;br /&gt;
 * This program and the accompanying materials are made available under the&lt;br /&gt;
 * terms of the Eclipse Public License v1.0 which accompanies this distribution,&lt;br /&gt;
 * and is available at http://www.eclipse.org/legal/epl-v10.html&lt;br /&gt;
 * &lt;br /&gt;
 * Contributors: IBM Corporation - initial API and implementation&lt;br /&gt;
 ******************************************************************************/&lt;br /&gt;
// package org.eclipse.swt.snippets;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.graphics.Point;&lt;br /&gt;
import org.eclipse.swt.layout.FillLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Event;&lt;br /&gt;
import org.eclipse.swt.widgets.Listener;&lt;br /&gt;
import org.eclipse.swt.widgets.ScrollBar;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.Text;&lt;br /&gt;
/*&lt;br /&gt;
 * Detect when the user scrolls a text control&lt;br /&gt;
 * &lt;br /&gt;
 * For a list of all SWT example snippets see&lt;br /&gt;
 * http://www.eclipse.org/swt/snippets/&lt;br /&gt;
 */&lt;br /&gt;
public class TextControlUserScroll {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    shell.setLayout(new FillLayout());&lt;br /&gt;
    final Text text = new Text(shell, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);&lt;br /&gt;
    for (int i = 0; i &amp;lt; 32; i++) {&lt;br /&gt;
      text.append(i + &amp;quot;-This is a line of text in a widget-&amp;quot; + i + &amp;quot;\n&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    text.setSelection(0);&lt;br /&gt;
    Listener listener = new Listener() {&lt;br /&gt;
      int lastIndex = text.getTopIndex();&lt;br /&gt;
      public void handleEvent(Event e) {&lt;br /&gt;
        int index = text.getTopIndex();&lt;br /&gt;
        if (index != lastIndex) {&lt;br /&gt;
          lastIndex = index;&lt;br /&gt;
          System.out.println(&amp;quot;Scrolled, topIndex=&amp;quot; + index);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    /* NOTE: Only detects scrolling by the user */&lt;br /&gt;
    text.addListener(SWT.MouseDown, listener);&lt;br /&gt;
    text.addListener(SWT.MouseMove, listener);&lt;br /&gt;
    text.addListener(SWT.MouseUp, listener);&lt;br /&gt;
    text.addListener(SWT.KeyDown, listener);&lt;br /&gt;
    text.addListener(SWT.KeyUp, listener);&lt;br /&gt;
    text.addListener(SWT.Resize, listener);&lt;br /&gt;
    ScrollBar hBar = text.getHorizontalBar();&lt;br /&gt;
    if (hBar != null) {&lt;br /&gt;
      hBar.addListener(SWT.Selection, listener);&lt;br /&gt;
    }&lt;br /&gt;
    ScrollBar vBar = text.getVerticalBar();&lt;br /&gt;
    if (vBar != null) {&lt;br /&gt;
      vBar.addListener(SWT.Selection, listener);&lt;br /&gt;
    }&lt;br /&gt;
    shell.pack();&lt;br /&gt;
    Point size = shell.ruputeSize(SWT.DEFAULT, SWT.DEFAULT);&lt;br /&gt;
    shell.setSize(size.x - 32, size.y / 2);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Listen to key Traversed event ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.events.TraverseEvent;&lt;br /&gt;
import org.eclipse.swt.events.TraverseListener;&lt;br /&gt;
import org.eclipse.swt.graphics.Font;&lt;br /&gt;
import org.eclipse.swt.graphics.GC;&lt;br /&gt;
import org.eclipse.swt.graphics.Rectangle;&lt;br /&gt;
import org.eclipse.swt.layout.FillLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.Text;&lt;br /&gt;
public class TraverseEventListen {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    final Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    shell.setLayout(new FillLayout());&lt;br /&gt;
    final Text text = new Text(shell, SWT.SINGLE | SWT.BORDER);&lt;br /&gt;
    text.setText(&amp;quot;press tab to draw&amp;quot;);&lt;br /&gt;
    text.addTraverseListener(new TraverseListener() {&lt;br /&gt;
      public void keyTraversed(TraverseEvent e) {&lt;br /&gt;
        if (e.detail == SWT.TRAVERSE_TAB_NEXT || e.detail == SWT.TRAVERSE_TAB_PREVIOUS) {&lt;br /&gt;
          e.doit = true;&lt;br /&gt;
          GC gc = new GC(text);&lt;br /&gt;
          // Erase background first.&lt;br /&gt;
          Rectangle rect = text.getClientArea();&lt;br /&gt;
          gc.fillRectangle(rect.x, rect.y, rect.width, rect.height);&lt;br /&gt;
          Font font = new Font(display, &amp;quot;Arial&amp;quot;, 32, SWT.BOLD);&lt;br /&gt;
          gc.setFont(font);&lt;br /&gt;
          gc.drawString(&amp;quot;tab event&amp;quot;, 15, 10);&lt;br /&gt;
          gc.dispose();&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch()) {&lt;br /&gt;
        display.sleep();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Text default selection event(Return/Enter key) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.layout.RowLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.rubo;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Event;&lt;br /&gt;
import org.eclipse.swt.widgets.Listener;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.Text;&lt;br /&gt;
public class TextDefaultSelection {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    shell.setLayout(new RowLayout());&lt;br /&gt;
    Combo combo = new Combo(shell, SWT.NONE);&lt;br /&gt;
    combo.setItems(new String[] { &amp;quot;A-1&amp;quot;, &amp;quot;B-1&amp;quot;, &amp;quot;C-1&amp;quot; });&lt;br /&gt;
    Text text = new Text(shell, SWT.SINGLE | SWT.BORDER);&lt;br /&gt;
    text.setText(&amp;quot;some text&amp;quot;);&lt;br /&gt;
    combo.addListener(SWT.DefaultSelection, new Listener() {&lt;br /&gt;
      public void handleEvent(Event e) {&lt;br /&gt;
        System.out.println(e.widget + &amp;quot; - Default Selection&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    text.addListener(SWT.DefaultSelection, new Listener() {&lt;br /&gt;
      public void handleEvent(Event e) {&lt;br /&gt;
        System.out.println(e.widget + &amp;quot; - Default Selection&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    shell.pack();&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Text TraverseListener: Tab key event (override Tab behavior to traverse out of a Text) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.events.TraverseEvent;&lt;br /&gt;
import org.eclipse.swt.events.TraverseListener;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.Text;&lt;br /&gt;
public class TextTraverseListenerTab {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    shell.setBounds(10, 10, 200, 200);&lt;br /&gt;
    Text text1 = new Text(shell, SWT.MULTI | SWT.WRAP);&lt;br /&gt;
    text1.setBounds(10, 10, 150, 50);&lt;br /&gt;
    text1.setText(&amp;quot;Tab will traverse out from here.&amp;quot;);&lt;br /&gt;
    text1.addTraverseListener(new TraverseListener() {&lt;br /&gt;
      public void keyTraversed(TraverseEvent e) {&lt;br /&gt;
        if (e.detail == SWT.TRAVERSE_TAB_NEXT || e.detail == SWT.TRAVERSE_TAB_PREVIOUS) {&lt;br /&gt;
          e.doit = true;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    Text text2 = new Text(shell, SWT.MULTI | SWT.WRAP);&lt;br /&gt;
    text2.setBounds(10, 100, 150, 50);&lt;br /&gt;
    text2.setText(&amp;quot;But Tab will NOT traverse out from here (Ctrl+Tab will).&amp;quot;);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Use a regular expression to verify input(a phone number is used) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*******************************************************************************&lt;br /&gt;
 * Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br /&gt;
 * All rights reserved. This program and the accompanying materials&lt;br /&gt;
 * are made available under the terms of the Eclipse Public License v1.0&lt;br /&gt;
 * which accompanies this distribution, and is available at&lt;br /&gt;
 * http://www.eclipse.org/legal/epl-v10.html&lt;br /&gt;
 *&lt;br /&gt;
 * Contributors:&lt;br /&gt;
 *     IBM Corporation - initial API and implementation&lt;br /&gt;
 *******************************************************************************/&lt;br /&gt;
//package org.eclipse.swt.snippets;&lt;br /&gt;
/*&lt;br /&gt;
 * Text example snippet: use a regular expression to verify input&lt;br /&gt;
 * In this case a phone number is used.&lt;br /&gt;
 * &lt;br /&gt;
 * For a list of all SWT example snippets see&lt;br /&gt;
 * http://www.eclipse.org/swt/snippets/&lt;br /&gt;
 */&lt;br /&gt;
import java.util.regex.Matcher;&lt;br /&gt;
import java.util.regex.Pattern;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.graphics.Font;&lt;br /&gt;
import org.eclipse.swt.layout.GridLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Event;&lt;br /&gt;
import org.eclipse.swt.widgets.Listener;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.Text;&lt;br /&gt;
public class TextVerifyInputRegularExpression {&lt;br /&gt;
  /*&lt;br /&gt;
   * Phone numbers follow the rule&lt;br /&gt;
   * [(][1-9][1-9][1-9][)][1-9][1-9][1-9][-][1-9][1-9][1-9][1-9]&lt;br /&gt;
   */&lt;br /&gt;
  private static final String REGEX = &amp;quot;[(]\\d{3}[)]\\d{3}[-]\\d{4}&amp;quot;; //$NON-NLS-1$&lt;br /&gt;
  private static final String template = &amp;quot;(###)###-####&amp;quot;; //$NON-NLS-1$&lt;br /&gt;
  private static final String defaultText = &amp;quot;(000)000-0000&amp;quot;; //$NON-NLS-1$&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    shell.setLayout(new GridLayout());&lt;br /&gt;
    final Text text = new Text(shell, SWT.BORDER);&lt;br /&gt;
    Font font = new Font(display, &amp;quot;Courier New&amp;quot;, 10, SWT.NONE); //$NON-NLS-1$&lt;br /&gt;
    text.setFont(font);&lt;br /&gt;
    text.setText(template);&lt;br /&gt;
    text.addListener(SWT.Verify, new Listener() {&lt;br /&gt;
      // create the pattern for verification&lt;br /&gt;
      Pattern pattern = Pattern.rupile(REGEX);&lt;br /&gt;
      // ignore event when caused by inserting text inside event handler&lt;br /&gt;
      boolean ignore;&lt;br /&gt;
      public void handleEvent(Event e) {&lt;br /&gt;
        if (ignore)&lt;br /&gt;
          return;&lt;br /&gt;
        e.doit = false;&lt;br /&gt;
        if (e.start &amp;gt; 13 || e.end &amp;gt; 14)&lt;br /&gt;
          return;&lt;br /&gt;
        StringBuffer buffer = new StringBuffer(e.text);&lt;br /&gt;
        // handle backspace&lt;br /&gt;
        if (e.character == &amp;quot;\b&amp;quot;) {&lt;br /&gt;
          for (int i = e.start; i &amp;lt; e.end; i++) {&lt;br /&gt;
            // skip over separators&lt;br /&gt;
            switch (i) {&lt;br /&gt;
            case 0:&lt;br /&gt;
              if (e.start + 1 == e.end) {&lt;br /&gt;
                return;&lt;br /&gt;
              } else {&lt;br /&gt;
                buffer.append(&amp;quot;(&amp;quot;);&lt;br /&gt;
              }&lt;br /&gt;
              break;&lt;br /&gt;
            case 4:&lt;br /&gt;
              if (e.start + 1 == e.end) {&lt;br /&gt;
                buffer.append(new char[] { &amp;quot;#&amp;quot;, &amp;quot;)&amp;quot; });&lt;br /&gt;
                e.start--;&lt;br /&gt;
              } else {&lt;br /&gt;
                buffer.append(&amp;quot;)&amp;quot;);&lt;br /&gt;
              }&lt;br /&gt;
              break;&lt;br /&gt;
            case 8:&lt;br /&gt;
              if (e.start + 1 == e.end) {&lt;br /&gt;
                buffer.append(new char[] { &amp;quot;#&amp;quot;, &amp;quot;-&amp;quot; });&lt;br /&gt;
                e.start--;&lt;br /&gt;
              } else {&lt;br /&gt;
                buffer.append(&amp;quot;-&amp;quot;);&lt;br /&gt;
              }&lt;br /&gt;
              break;&lt;br /&gt;
            default:&lt;br /&gt;
              buffer.append(&amp;quot;#&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
          text.setSelection(e.start, e.start + buffer.length());&lt;br /&gt;
          ignore = true;&lt;br /&gt;
          text.insert(buffer.toString());&lt;br /&gt;
          ignore = false;&lt;br /&gt;
          // move cursor backwards over separators&lt;br /&gt;
          if (e.start == 5 || e.start == 9)&lt;br /&gt;
            e.start--;&lt;br /&gt;
          text.setSelection(e.start, e.start);&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
        StringBuffer newText = new StringBuffer(defaultText);&lt;br /&gt;
        char[] chars = e.text.toCharArray();&lt;br /&gt;
        int index = e.start - 1;&lt;br /&gt;
        for (int i = 0; i &amp;lt; e.text.length(); i++) {&lt;br /&gt;
          index++;&lt;br /&gt;
          switch (index) {&lt;br /&gt;
          case 0:&lt;br /&gt;
            if (chars[i] == &amp;quot;(&amp;quot;)&lt;br /&gt;
              continue;&lt;br /&gt;
            index++;&lt;br /&gt;
            break;&lt;br /&gt;
          case 4:&lt;br /&gt;
            if (chars[i] == &amp;quot;)&amp;quot;)&lt;br /&gt;
              continue;&lt;br /&gt;
            index++;&lt;br /&gt;
            break;&lt;br /&gt;
          case 8:&lt;br /&gt;
            if (chars[i] == &amp;quot;-&amp;quot;)&lt;br /&gt;
              continue;&lt;br /&gt;
            index++;&lt;br /&gt;
            break;&lt;br /&gt;
          }&lt;br /&gt;
          if (index &amp;gt;= newText.length())&lt;br /&gt;
            return;&lt;br /&gt;
          newText.setCharAt(index, chars[i]);&lt;br /&gt;
        }&lt;br /&gt;
        // if text is selected, do not paste beyond range of selection&lt;br /&gt;
        if (e.start &amp;lt; e.end &amp;amp;&amp;amp; index + 1 != e.end)&lt;br /&gt;
          return;&lt;br /&gt;
        Matcher matcher = pattern.matcher(newText);&lt;br /&gt;
        if (matcher.lookingAt()) {&lt;br /&gt;
          text.setSelection(e.start, index + 1);&lt;br /&gt;
          ignore = true;&lt;br /&gt;
          text.insert(newText.substring(e.start, index + 1));&lt;br /&gt;
          ignore = false;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    shell.pack();&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    font.dispose();&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Verify input (format for date) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*******************************************************************************&lt;br /&gt;
 * Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br /&gt;
 * All rights reserved. This program and the accompanying materials&lt;br /&gt;
 * are made available under the terms of the Eclipse Public License v1.0&lt;br /&gt;
 * which accompanies this distribution, and is available at&lt;br /&gt;
 * http://www.eclipse.org/legal/epl-v10.html&lt;br /&gt;
 *&lt;br /&gt;
 * Contributors:&lt;br /&gt;
 *     IBM Corporation - initial API and implementation&lt;br /&gt;
 *******************************************************************************/&lt;br /&gt;
//package org.eclipse.swt.snippets;&lt;br /&gt;
/*&lt;br /&gt;
 * Text example snippet: verify input (format for date)&lt;br /&gt;
 * &lt;br /&gt;
 * For a list of all SWT example snippets see&lt;br /&gt;
 * http://www.eclipse.org/swt/snippets/&lt;br /&gt;
 */&lt;br /&gt;
import java.util.Calendar;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.layout.GridLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Event;&lt;br /&gt;
import org.eclipse.swt.widgets.Listener;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.Text;&lt;br /&gt;
public class TextVerifyInputFormatDate {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    shell.setLayout(new GridLayout());&lt;br /&gt;
    final Text text = new Text(shell, SWT.BORDER);&lt;br /&gt;
    text.setText(&amp;quot;YYYY/MM/DD&amp;quot;);&lt;br /&gt;
    ;&lt;br /&gt;
    final Calendar calendar = Calendar.getInstance();&lt;br /&gt;
    text.addListener(SWT.Verify, new Listener() {&lt;br /&gt;
      boolean ignore;&lt;br /&gt;
      public void handleEvent(Event e) {&lt;br /&gt;
        if (ignore)&lt;br /&gt;
          return;&lt;br /&gt;
        e.doit = false;&lt;br /&gt;
        StringBuffer buffer = new StringBuffer(e.text);&lt;br /&gt;
        char[] chars = new char[buffer.length()];&lt;br /&gt;
        buffer.getChars(0, chars.length, chars, 0);&lt;br /&gt;
        if (e.character == &amp;quot;\b&amp;quot;) {&lt;br /&gt;
          for (int i = e.start; i &amp;lt; e.end; i++) {&lt;br /&gt;
            switch (i) {&lt;br /&gt;
            case 0: /* [Y]YYY */&lt;br /&gt;
            case 1: /* Y[Y]YY */&lt;br /&gt;
            case 2: /* YY[Y]Y */&lt;br /&gt;
            case 3: /* YYY[Y] */{&lt;br /&gt;
              buffer.append(&amp;quot;Y&amp;quot;);&lt;br /&gt;
              break;&lt;br /&gt;
            }&lt;br /&gt;
            case 5: /* [M]M */&lt;br /&gt;
            case 6: /* M[M] */{&lt;br /&gt;
              buffer.append(&amp;quot;M&amp;quot;);&lt;br /&gt;
              break;&lt;br /&gt;
            }&lt;br /&gt;
            case 8: /* [D]D */&lt;br /&gt;
            case 9: /* D[D] */{&lt;br /&gt;
              buffer.append(&amp;quot;D&amp;quot;);&lt;br /&gt;
              break;&lt;br /&gt;
            }&lt;br /&gt;
            case 4: /* YYYY[/]MM */&lt;br /&gt;
            case 7: /* MM[/]DD */{&lt;br /&gt;
              buffer.append(&amp;quot;/&amp;quot;);&lt;br /&gt;
              break;&lt;br /&gt;
            }&lt;br /&gt;
            default:&lt;br /&gt;
              return;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
          text.setSelection(e.start, e.start + buffer.length());&lt;br /&gt;
          ignore = true;&lt;br /&gt;
          text.insert(buffer.toString());&lt;br /&gt;
          ignore = false;&lt;br /&gt;
          text.setSelection(e.start, e.start);&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
        int start = e.start;&lt;br /&gt;
        if (start &amp;gt; 9)&lt;br /&gt;
          return;&lt;br /&gt;
        int index = 0;&lt;br /&gt;
        for (int i = 0; i &amp;lt; chars.length; i++) {&lt;br /&gt;
          if (start + index == 4 || start + index == 7) {&lt;br /&gt;
            if (chars[i] == &amp;quot;/&amp;quot;) {&lt;br /&gt;
              index++;&lt;br /&gt;
              continue;&lt;br /&gt;
            }&lt;br /&gt;
            buffer.insert(index++, &amp;quot;/&amp;quot;);&lt;br /&gt;
          }&lt;br /&gt;
          if (chars[i] &amp;lt; &amp;quot;0&amp;quot; || &amp;quot;9&amp;quot; &amp;lt; chars[i])&lt;br /&gt;
            return;&lt;br /&gt;
          if (start + index == 5 &amp;amp;&amp;amp; &amp;quot;1&amp;quot; &amp;lt; chars[i])&lt;br /&gt;
            return; /* [M]M */&lt;br /&gt;
          if (start + index == 8 &amp;amp;&amp;amp; &amp;quot;3&amp;quot; &amp;lt; chars[i])&lt;br /&gt;
            return; /* [D]D */&lt;br /&gt;
          index++;&lt;br /&gt;
        }&lt;br /&gt;
        String newText = buffer.toString();&lt;br /&gt;
        int length = newText.length();&lt;br /&gt;
        StringBuffer date = new StringBuffer(text.getText());&lt;br /&gt;
        date.replace(e.start, e.start + length, newText);&lt;br /&gt;
        calendar.set(Calendar.YEAR, 1901);&lt;br /&gt;
        calendar.set(Calendar.MONTH, Calendar.JANUARY);&lt;br /&gt;
        calendar.set(Calendar.DATE, 1);&lt;br /&gt;
        String yyyy = date.substring(0, 4);&lt;br /&gt;
        if (yyyy.indexOf(&amp;quot;Y&amp;quot;) == -1) {&lt;br /&gt;
          int year = Integer.parseInt(yyyy);&lt;br /&gt;
          calendar.set(Calendar.YEAR, year);&lt;br /&gt;
        }&lt;br /&gt;
        String mm = date.substring(5, 7);&lt;br /&gt;
        if (mm.indexOf(&amp;quot;M&amp;quot;) == -1) {&lt;br /&gt;
          int month = Integer.parseInt(mm) - 1;&lt;br /&gt;
          int maxMonth = calendar.getActualMaximum(Calendar.MONTH);&lt;br /&gt;
          if (0 &amp;gt; month || month &amp;gt; maxMonth)&lt;br /&gt;
            return;&lt;br /&gt;
          calendar.set(Calendar.MONTH, month);&lt;br /&gt;
        }&lt;br /&gt;
        String dd = date.substring(8, 10);&lt;br /&gt;
        if (dd.indexOf(&amp;quot;D&amp;quot;) == -1) {&lt;br /&gt;
          int day = Integer.parseInt(dd);&lt;br /&gt;
          int maxDay = calendar.getActualMaximum(Calendar.DATE);&lt;br /&gt;
          if (1 &amp;gt; day || day &amp;gt; maxDay)&lt;br /&gt;
            return;&lt;br /&gt;
          calendar.set(Calendar.DATE, day);&lt;br /&gt;
        } else {&lt;br /&gt;
          if (calendar.get(Calendar.MONTH) == Calendar.FEBRUARY) {&lt;br /&gt;
            char firstChar = date.charAt(8);&lt;br /&gt;
            if (firstChar != &amp;quot;D&amp;quot; &amp;amp;&amp;amp; &amp;quot;2&amp;quot; &amp;lt; firstChar)&lt;br /&gt;
              return;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
        text.setSelection(e.start, e.start + length);&lt;br /&gt;
        ignore = true;&lt;br /&gt;
        text.insert(newText);&lt;br /&gt;
        ignore = false;&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    shell.pack();&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Verify input (only allow digits) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*******************************************************************************&lt;br /&gt;
 * Copyright (c) 2000, 2004 IBM Corporation and others.&lt;br /&gt;
 * All rights reserved. This program and the accompanying materials&lt;br /&gt;
 * are made available under the terms of the Eclipse Public License v1.0&lt;br /&gt;
 * which accompanies this distribution, and is available at&lt;br /&gt;
 * http://www.eclipse.org/legal/epl-v10.html&lt;br /&gt;
 *&lt;br /&gt;
 * Contributors:&lt;br /&gt;
 *     IBM Corporation - initial API and implementation&lt;br /&gt;
 *******************************************************************************/&lt;br /&gt;
//package org.eclipse.swt.snippets;&lt;br /&gt;
/*&lt;br /&gt;
 * Text example snippet: verify input (only allow digits)&lt;br /&gt;
 *&lt;br /&gt;
 * For a list of all SWT example snippets see&lt;br /&gt;
 * http://www.eclipse.org/swt/snippets/&lt;br /&gt;
 */&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Event;&lt;br /&gt;
import org.eclipse.swt.widgets.Listener;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.Text;&lt;br /&gt;
public class TextVerifyInputDigits {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    Text text = new Text(shell, SWT.BORDER | SWT.V_SCROLL);&lt;br /&gt;
    text.setBounds(10, 10, 200, 200);&lt;br /&gt;
    text.addListener(SWT.Verify, new Listener() {&lt;br /&gt;
      public void handleEvent(Event e) {&lt;br /&gt;
        String string = e.text;&lt;br /&gt;
        char[] chars = new char[string.length()];&lt;br /&gt;
        string.getChars(0, chars.length, chars, 0);&lt;br /&gt;
        for (int i = 0; i &amp;lt; chars.length; i++) {&lt;br /&gt;
          if (!(&amp;quot;0&amp;quot; &amp;lt;= chars[i] &amp;amp;&amp;amp; chars[i] &amp;lt;= &amp;quot;9&amp;quot;)) {&lt;br /&gt;
            e.doit = false;&lt;br /&gt;
            return;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>