有没有一种方法可以返回JTextField中字符的位置。我的意思是,如果我有一个包含一些值的JTextField。例如,该字段包含值ABCDEFJ。用户决定在字符“C”右侧放置光标以输入新值。是否有一种方法可以获取他输入新字符的位置。在这个例子中,它将返回3。
JTextField.getCaretPosition()
JTextField.setCaretPosition(int pos)
JTextField.setCaretPosition(anyPrecalculatedOffset)
- alasterCaretListener
接口:public class A extends JFrame implements CaretListener
{
//Assume you have a text field.
public A()
{
JTextField field = new JTextField("bla bla");
field.addCaretListener(this);
.....
}
public void caretUpdate(CaretEvent e)
{
int index = e.getDot();
.....
}
}
CaretEvent
类的 getDot()
方法会返回您需要的结果,您可以将其赋值给一个全局变量以便稍后使用。
这是您的答案:
http://docs.oracle.com/javase/6/docs/api/javax/swing/text/JTextComponent.html#getCaretPosition%28%29
使用ActionListener来等待操作,当用户输入内容时,找到光标位置。
JSpinner
(或者可编辑的JComboBox
)组件会更好。 - Andrew Thompson