8
votes

Trouver la position du texte du curseur dans JTextfield

Y a-t-il une méthode pour renvoyer la position du caractère dans le jtextfield. Ce que je veux dire par c'est si j'ai un jtextfield avec quelques valeurs dedans. Par exemple, le champ contient de la valeur Abcdefj. L'utilisateur décide de mettre le curseur juste après la caractère 'c' pour entrer une nouvelle valeur. Y a-t-il une méthode pour obtenir position où il entre dans le nouveau personnage. Dans cet exemple, cela retournerait un 3.


2 commentaires

Quel est l'utilisation réelle ici? Il ressemble à un jSpinner (ou peut-être un jCOMBOBOX ) serait un meilleur composant à utiliser.


Ce n'est pas une bonne question car vous demandez une solution de code spécifique plutôt que sur la manière de mettre en œuvre un comportement. La solution réelle à votre comportement souhaité peut impliquer une approche complètement différente. Par exemple, si vous essayez de vérifier l'entrée d'un JTextfield avant qu'il ne soit terminé, alors ce que vous voulez vraiment utiliser est un document de document. Donc, à l'avenir, veuillez nous en dire plus sur le problème global que vous souhaitez résoudre et moins sur la manière dont vous essayez spécifiquement de le résoudre.


3 Réponses :


1
votes

Voici votre réponse:

http: //docs.oracle.com/javase/6/docs/api/javax/swing/text/jtextComponent.html#getcaretPosition%28%29

Utilisez un actelistener pour attendre une action. Lorsque l'utilisateur tape quelque chose, recherchez la position du calet.


0 commentaires

15
votes

jtextfield.getcaretPosition ()

jtextfield.setcaretPosition (int Pos)


3 commentaires

Merci. Ceci est exactement ce que je cherchais.


Existe-t-il une méthode plus directe - comme définir la position sur un décalage de texte du début de la chaîne?


comme ça? JTextField.SeCaretPosition (AnyPrecalcowedOffset)



2
votes

Essayez d'obtenir l'utilisation de Caretlistener Interface: xxx

getdot () méthode de Caretezent Retours de classe Le résultat que vous désirez, vous pouvez l'affecter à une variable globale à utiliser plus tard.


0 commentaires