Quelle est la meilleure façon d'obtenir une valeur de TextArea après avoir tapé une clé, y compris ce caractère?Java Swing: Comment obtenir la valeur TextArea y compris le caractère que vous venez de taper?
Si je le fais dans le programme d'écoute pair, textarea.getText()
renvoie la valeur sans le nouveau caractère éventuel.
Fondamentalement, je vois deux façons:
traitement de remettre à plus tard avec quelque chose comme invokeLater(). Je préférerais une solution sans threads.
Déterminer où placer le caractère dans le texte, en fonction de la position du carret.
Y a-t-il un autre, plus simple?
Merci.
Edit: C'est ce que j'ai:
JTextArea textarea = (JTextArea) evt.getComponent();
String texySource = textarea.getText();
char keyCode = evt.getKeyChar();
//if(Character.isLetterOrDigit(keyCode) || Character.isSpaceChar(keyCode) )
if(keyCode >= 0x20 || keyCode == 0x0A || keyCode == 0x0D ){
// TODO: The carret doesn't have to be at the end...
//texySource += Character.toString(evt.getKeyChar());
String ch = Character.toString(evt.getKeyChar());
texySource = StringUtils.overlay(texySource, ch,
textarea.getSelectionStart(),
textarea.getSelectionStart() );
}
Vérifiez http://stackoverflow.com/questions/1252698/how-can-i-know-when-the-text-of-an-editable-jcombobox-a-été modifié pour obtenir des informations possibles. –
Quel est exactement ce que vous voulez atteindre? – objects
Je veux obtenir le texte avec le caractère (que l'utilisateur vient de taper) inclus. –