Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.

Tip of the Day
Language: AWT
Expertise: Beginner
Nov 20, 1998



Application Security Testing: An Integral Part of DevOps

Controlling the cursor position in a TextField

Is there a way to put the text editing cursor in a specific position, like at the end of the string, in a TextField?

This is the sort of question people ask because they look at the javadocs for TextField, but don't see a cursor placement method and give up. Whenever you look at the documentation for a class, you have to remember to look at the documentation for its parent classes also. More often than not, more general functionality is concentrated in a common superclass that multiple subclasses inherit. In this case, the TextComponent class contains a setCaretPosition method that is inherited by both TextField and TextArea. Java is object-oriented after all! Unfortunately, you will find that setCaretPosition is not entirely useful for TextAreas, where you would prefer to set the position based on a row and column, and not an absolute index. The following short example creates a TextField displaying a test string, and places the editing cursor in the middle of the string.

import java.awt.*;
import java.awt.event.*;

public final class TextFieldCursor {
  public static void main(String[] args) {
    Frame frame;
    TextField textField;
    WindowListener exitListener;

    exitListener = new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
	Window window = e.getWindow();

    textField = new TextField("01234567890123456789", 20);

    frame = new Frame();


    // Set the caret position to 
       the middle of the string
    // (after the first 9).
       You can only do this after the
    // TextField's peer has been created,
       so you have to do
    // it after packing the frame.

DevX Pro
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.
Thanks for your registration, follow us on our social networks to keep up-to-date