[Java] JTextField : taille dynamique ?

[Résolu/Fermé]
Signaler
Messages postés
892
Date d'inscription
dimanche 25 mai 2008
Statut
Membre
Dernière intervention
30 juillet 2018
-
Messages postés
892
Date d'inscription
dimanche 25 mai 2008
Statut
Membre
Dernière intervention
30 juillet 2018
-
Bonjour,

J'ai une application Java qui contient un JTextField, par defaut vide et de taille 5, et j'aimerais que sa taille soit actualisee en fonction de la taille du texte qu'il contient...
J'ai teste la fonction .setDragEnabled(true) mais ce n'est pas tres satisfaisant : il faut que je quitte le JTextField pour que la taille soit effectivement actualisee...

Existe-t-il une autre maniere, plus performante, de realiser ca ?

Merci d'avance !

1 réponse

Hello,

c'est tres facile, tu ajoute une KeyListener sur on JTextField.

exemple utilisant une classe interne:

JTextField jtf= new JTextField(5);
jtf.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
JTextField jtf = (JTextField) e.getSource();
String texteNouvellementInserer = jtf.getText();
int nouvelleTaille = texteNouvellementInserer.lenth();
jtf.setSize(nouvelleTaille);
}
});

n'oublie pas les import (java.awt etc etc ...)
je ne suis pas sur pour la methode setSize(), verifie si c'est la bonne dans la javadoc du jtextfield.
mais ca doit compiler comme il faut.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
892
Date d'inscription
dimanche 25 mai 2008
Statut
Membre
Dernière intervention
30 juillet 2018
181
Parfait, c'est tout a fait ce qu'il me fallait.
Par contre, j'utilise la methode setColumns(), qui definit la largeur du champ en caracteres plutot que setSize(), qui definit la largeur du composant.

Le nombre de colonnes est donc bien applique (controle grace a println), mais pour qu'il soit affiche, il ne faut pas oublier de faire un revalidate() sur le JPanel.

Merci beaucoup !