Java: Comment curseur automatiquement déplacer d'un Champ à l'autre
Dans mon application quatre TextArea et je veux entrer seulement quatre caractères dans une zone de Texte et le curseur se déplace automatiquement à la prochaine TestArea. De nouveau quand je rentre à quatre caractères dans ce TextArea puis de nouveau curseur se déplace automatiquement à la prochaine TextArea.
Exemple: Au moment de l'installation de windows XP il veut "Clé" et il y a quatre section lorsque vous entrez à quatre caractères dans la première section, le curseur se déplace automatiquement à la section suivante.
Même chose que je veux dans mon application.
Pour cela, tout d'abord je ajouter CustomizedTextFields.jar et puis créé quatre IntegerField:
private IntegerField text1;
private IntegerField text2;
private IntegerField text3;
private IntegerField text4;
après ce que j'ai montrer tous ces IntegerField sur mon cadre.
Maintenant, j'ai essayé ce code pour envoyer curseur dans le champ suivant, mais ça ne fonctionne pas:
text1.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
int a2 = text1.getText().length();
if (a2 == 3) {
text2.getCursor();
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
}
});
OriginalL'auteur Vinit Vikash | 2012-03-22
Vous devez vous connecter pour publier un commentaire.
assez intéressante question pour essayer d'améliorer mon ombre connaissance du texte de l'emballage 🙂
Il y a deux exigences distinctes ici
dans le code:
La documentFilter est celui de la Swing Tutoriel
pour NavigationFilter. En fait , jusqu'à aujourd'hui, ce terme n'était pas à ma connaissance 🙂 . Encore de la lecture à ce sujet, se sent comme vous l'avait dit, c'est le chemin à parcourir, car j'espérais que quelqu'un peut mettre plus de lumière sur ce, c'est pourquoi j'ai posté la réponse, sinon je n'ai jamais voulu.
Mais, lorsque j'ai appliqué
transferFocus()
à l'intérieur deNavigationFilter
, rien n'a changé, donc Si vous pouvez poster tout le code, je vais vraiment être obligé.que est tout le code, il suffit de le mettre dans vos favoris de cadre et de l'exécuter 🙂
Maintenant ça fonctionne, LOL, la dernière fois, il m'a donné toutes sortes de méchants erreurs. Juste une chose, changer le
maxSize
à 4, que l'OP veut pour 4 Caractères. La suppression de ma réponse 🙂OriginalL'auteur kleopatra
ajouter DocumentListener à la
JTextComponents
, pour l'écoute ajouter DocumentFilterne pas utiliser
KeyListener
pourJTextComponents
, utilisez uniquementDocumentListener
ajouter des prochaines
JTextArea
à laDocumentListener
, s'est-il tapé à la 4e place. Char àJTextArea
,avis, se déplaçant avec
Focus
d'unJTextArea
à l'autre serait mieux enveloppé dansinvokeLater
OriginalL'auteur mKorbel
Remplacer
text2.getCursor()
avectext2.requestFocus()
.getCursor()
est pour la récupération de la forme du pointeur de la souris quand le curseur est sur un composant.Aussi, avec cette méthode il est toujours possible de saisir plus de 4 caractères dans un champ, par exemple par collage à partir du presse-papiers. Si vous souhaitez bloquer, vous devez vérifier si le texte saisi est de plus de 4 caractères, et, dans l'affirmative, de prendre uniquement les 4 premiers caractères de l'.
OriginalL'auteur socha23
Quelque chose comme cela devrait fonctionner:
Où texte2 est votre champ suivant
OriginalL'auteur John Snow
il suffit juste de créer textarea et allez à la clé tapé événements
den u peut écrire ce
OriginalL'auteur Vishal Menaria