public void setCaretPosition(int position)
Sets the position of the text insertion caret for the TextComponent. Note that the caret tracks change, so this may move if the underlying text of the component is changed. If the document is null, does nothing. The position must be between 0 and the length of the component's text or else an exception is thrown.
Parameters:
position - the position
Throws:
IllegalArgumentException - if the value supplied for position is less than zero or greater than the component's text length
public class TextEditTest
{
public static void main(String[] args)
{
TextEditFrame frame = new TextEditFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
/**
A frame with a text area and components for search/replace.
*/
class TextEditFrame extends JFrame
{
public TextEditFrame()
{
setTitle("TextEditTest");
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
JPanel panel = new JPanel();
// add button, text fields and labels
JButton replaceButton = new JButton("Replace");
panel.add(replaceButton);
replaceButton.addActionListener(new ReplaceAction());
from = new JTextField("brown", 8);
panel.add(from);
panel.add(new JLabel("with"));
to = new JTextField("purple", 8);
panel.add(to);
add(panel, BorderLayout.SOUTH);
// add text area with scroll bars
String text ="775555555555555555555555555555555555555555555555555555555555555555555555555555llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll55555555555555555555555555555555555551111";
textArea = new JTextArea(text,3,20);
// textArea.setText
// ("The quick brown fox jumps over the lazy dog.");
//JScrollPane scrollPane = new JScrollPane(textArea);
TextArea.setLineWrap(true);
//add(scrollPane, BorderLayout.CENTER);
add(textArea, BorderLayout.CENTER);
}
public static final int DEFAULT_WIDTH = 200;
public static final int DEFAULT_HEIGHT = 120;
/**
The action listener for the replace button.
*/
private class ReplaceAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String f = from.getText();
int n = textArea.getText().indexOf(f);
if (n >= 0 && f.length() > 0)
textArea.replaceRange(to.getText(), n,
n + f.length());
}
}
}