Java TextField getText() renvoie la valeur précédente de la chaîne de valeur
J'ai un problème avec Java Textfield c'est quand je couvre tout le texte dans le component swing jtextfield et entrer le nouveau texte immédiatement(ne pas passer backspace) dans le component swing jtextfield, puis-je utiliser la fonction getText (), je reçois la chaîne précédente pas la chaîne actuelle. S'il vous plaît aider pour certaines solutions. Merci à l'avance.
Comment appelez-vous les getText() la méthode? c'est à dire: En appuyant sur un bouton après avoir tapé le texte, à l'aide d'un keyEvent à l'écoute, etc.?
Vous pouvez obtenir le dernier caractère tapé par evt.getKeyChar() (KeyEvent) et se connecter avec le textField.getText() pour obtenir la Chaîne que vous avez besoin.
Vous pouvez obtenir le dernier caractère tapé par evt.getKeyChar() (KeyEvent) et se connecter avec le textField.getText() pour obtenir la Chaîne que vous avez besoin.
OriginalL'auteur PlodPla | 2011-07-06
Vous devez vous connecter pour publier un commentaire.
Je viens de tester le problème que vous avez décrit par l'ajout d'un keyListener à un component swing jtextfield et impression de la getText() la méthode de la valeur de retour de la console.
Ce que j'ai trouvé est qu'il est toujours un personnage derrière si vous voulez utiliser le getText() la méthode la droite dans la keyTyped ou keyPressed événement (je ne savais pas cela parce que j'ai l'habitude de simplement utiliser un bouton pour confirmer que je suis entré le texte et la lier à un KeyEvent à la touche Retour pour déclencher le bouton si un utilisateur veut confirmer en appuyant sur enter)
Je pense que cela est dû à la textField à jour sa valeur de texte APRÈS l'événement est filmé.
Je suppose que c'est ce que vous avez fait, puisque vous n'avez pas à fournir des échantillons de code, donc je vais supprimer cette réponse si elle ne l'est pas.
Le travail autour de ce est de mettre en œuvre ce que vous voulez faire dans la keyReleased méthode à la place.
pour souligner Rob conseils: ne pas utiliser KeyListeners 😉
OriginalL'auteur Adam Smith
Ne pas utiliser un KeyListener. Le personnage n'a PAS été ajoutée au Document lors de la keyPressed() l'événement est déclenché.
Ajouter un ActionListener à un JButton. De cette façon, l'utilisateur clique sur le bouton lorsque le texte est finised de saisie.
Également, à l'avenir de poster un SSCCE avec vous la question afin que nous puissions mieux comprendre ce que vous essayez de faire.
OriginalL'auteur camickr
par exemple :
OriginalL'auteur mKorbel