JTextField öğesindeki karakterin konumunu döndürmek için bir yöntem var mı. Demek istediğim, içinde bazı değerler bulunan bir JTextField varsa. Örneğin, alan ABCDEFJ değerini içerir. Kullanıcı, imleci karakteri 'C' sonra yeni bir değer girmek için hemen koymaya karar verir. Yeni karaktere girdiği pozisyonunu almak için bir yöntem var mı. Bu örnekte, yılında bir 3.JTextField öğesinde imleç metni konumunu bulma
6
A
cevap
13
JTextField.getCaretPosition()
JTextField.setCaretPosition(int pos)
1
İşte cevabınızı döneceğini:
http://docs.oracle.com/javase/6/docs/api/javax/swing/text/JTextComponent.html#getCaretPosition%28%29
bir eylem için beklemek bir ActionListener kullanın. Kullanıcı bir şey yazdığında, düzeltme pozisyonunu bulun.
2
CaretListener
arayüzünün kullanımını alma deneyin: Daha sonra kullanmak üzere bir genel değişkeni sınıf arzu sonuç döndürür
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();
.....
}
}
getDot()
yöntem CaretEvent
, sen atayabilirsiniz üzerinde.
Burada gerçek kullanım durumu nedir? 'JSpinner' (veya belki de düzenlenebilir bir JComboBox') kullanmak daha iyi bir bileşen olacak gibi görünüyor. –
Bu iyi bir soru değil çünkü bir davranışın nasıl uygulanacağından ziyade belirli bir kod çözümü istiyorsunuz. İstediğiniz davranışa gerçek çözüm tamamen farklı bir yaklaşım içerebilir. Örneğin, bir JTextField girişini tamamlanmadan önce kontrol etmeye çalışıyorsanız, belki de gerçekten kullanmak istediğiniz şey bir DocumentFilter'dir. Gelecekte, lütfen çözmek istediğiniz genel sorun hakkında daha fazla bilgi verin ve bunu çözmek için ne kadar çaba sarfettiğinizi öğrenin. –