devxlogo

Controlling the cursor position in a TextField

Controlling the cursor position in a TextField

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

Answer:
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 isconcentrated in a common superclass that multiple subclasses inherit. In this case, the TextComponent class contains a setCaretPositionmethod 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 anabsolute 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();	window.setVisible(false);	window.dispose();	System.exit(0);      }    };    textField = new TextField("01234567890123456789", 20);    frame = new Frame();    frame.add(textField);    frame.addWindowListener(exitListener);    frame.pack();    // 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.    textField.setCaretPosition(10);    frame.setVisible(true);  }}
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist