TextField Example 4 : Text « SWT JFace Eclipse « Java






TextField Example 4

/**
  The following code is from Michael Schmidt(MichaelMSchmidt (at) msn.com).
  
  The code is published under BSD license.
  
  Thanks for the input from Michael Schmidt.
*/



package TextTest;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

/**
 * This is a revision of TextFieldExample4.  Two modifications have been made.
 * First, a Text value (ABC) has been added to the text2 field, simply for 
 * demonstration purposes.  Second, a mouseDown() listener has been added to 
 * text2.  Note that in the original sample, text2 would not highlight (perform
 * the selectAll() operation) when it gained focus with the mouse.  This is 
 * because clicking on the field invokes gainFocus() followed by mouseDown(), 
 * and mouseDown() does a clearSelection(), negating the selectAll() done in 
 * the gainFocus() method.  You can test this by simply commenting out the 
 * addMouseListener code.
 * <p>
 * Other modifications are possible.  The Text field may be designated 
 * read-only to prevent editing and erasing of the field when the tab key is 
 * used to move through the widgets.  Logic can also be used to do a selectAll()
 * when you first click on the field and then place the I-beam cursor if the 
 * mouse is clicked again. 
 * 
 * @author Michael Schmidt
 *
 */
public class TextFieldExample4Revised {

  Display d;

  Shell s;

  TextFieldExample4Revised() {
    d = new Display();
    s = new Shell(d);
    s.setSize(250, 250);
    s.setText("A Text Field Example");
    Text text1 = new Text(s, SWT.WRAP | SWT.BORDER);
    text1.setBounds(100, 50, 100, 20);
    text1.setTextLimit(5);
    text1.setText("12345");
    Text text2 = new Text(s, SWT.SINGLE | SWT.BORDER);
    text2.setBounds(100, 75, 100, 20);
    text2.setTextLimit(30);
    text2.setText("ABC");

    // add a focus listener
    FocusListener focusListener = new FocusListener() {
      public void focusGained(FocusEvent e) {
        Text t = (Text) e.widget;
        t.selectAll();
      }

      public void focusLost(FocusEvent e) {
        Text t = (Text) e.widget;
        if (t.getSelectionCount() > 0) {
          t.clearSelection();
        }
      }
    };
    text1.addFocusListener(focusListener);
    text2.addFocusListener(focusListener);
    
    //  Added code - comment out to test without the mouseListener
   text2.addMouseListener(new MouseAdapter() {
    public void mouseDown(final MouseEvent e) {
      Text t = (Text) e.widget;
      t.selectAll();
    }
  });
    // End of added code
   
    s.open();
    while (!s.isDisposed()) {
      if (!d.readAndDispatch())
        d.sleep();
    }
    d.dispose();
  }

  public static void main(String[] arg) {
    new TextFieldExample4Revised();
  }

}


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

public class TextFieldExample4 {

  Display d;

  Shell s;

  TextFieldExample4() {
    d = new Display();
    s = new Shell(d);
    s.setSize(250, 250);
    s.setText("A Text Field Example");
    Text text1 = new Text(s, SWT.WRAP | SWT.BORDER);
    text1.setBounds(100, 50, 100, 20);
    text1.setTextLimit(5);
    text1.setText("12345");
    Text text2 = new Text(s, SWT.SINGLE | SWT.BORDER);
    text2.setBounds(100, 75, 100, 20);
    text2.setTextLimit(30);

    // add a focus listener
    FocusListener focusListener = new FocusListener() {
      public void focusGained(FocusEvent e) {
        Text t = (Text) e.widget;
        t.selectAll();
      }

      public void focusLost(FocusEvent e) {
        Text t = (Text) e.widget;
        if (t.getSelectionCount() > 0) {
          t.clearSelection();
        }
      }
    };
    text1.addFocusListener(focusListener);
    text2.addFocusListener(focusListener);
    s.open();
    while (!s.isDisposed()) {
      if (!d.readAndDispatch())
        d.sleep();
    }
    d.dispose();
  }

  public static void main(String[] arg) {
    new TextFieldExample4();
  }

}


           
       








Related examples in the same category

1.Text to uppercase
2.Text EventText Event
3.Text and Label demoText and Label demo
4.Wrap LinesWrap Lines
5.Remarks TextRemarks Text
6.Demonstrates text fieldsDemonstrates text fields
7.Demonstrates multiline comments
8.Turns e characters red using a LineStyleListenerTurns e characters red using a LineStyleListener
9.TextField Example 5TextField Example 5
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)