Bonjour,
je souhaite savoir comment récupérer le contenu d'un JTextField à partir d'un panneau d'une autre classe.
merci pour votre aide.
Bonjour,
je souhaite savoir comment récupérer le contenu d'un JTextField à partir d'un panneau d'une autre classe.
merci pour votre aide.
Salut,
Plusieurs manières de le faire parmi les quelles, passer ton objet JTextField en paramètre du constructeur de la classe prévu pour l'utilisation de ce JTextField
jchuis pas chaud pour échanger des composants comme ça: ça crée des couplages.
ton composant cible peut avoir une méthode setXXX(String s)
cette méthode étant partie d'une interface.
Maintenant ton composant d'origine fait la récupération de la chaine du JTextField et passe cette chaine à la méthode setXXX.
La ruse est que le composant origine ne connait pas le composant cible il connait simplement l'interface correspondante.
Quand on systématise bien ce genre de stratégie on construit des codes graphiques bien décomposés et bien architecturés.
Je connais pas trop du peut donner un exemple s'il te plait??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 interface Cible { // j'ai mis n'importe quoi comme nom public void notificationSaisie(String st) ; } public ComposantCible extends JPanel implements Cible { public void notificationSaisie(String st) { // je reçois la chaine saisie } } public ComposantSaisie extends JPanel { private Cible àNotifier ; public ComposantSaisie(Cible àNotifier) { this.àNotifier = àNotifier ; // mise en place du JTextField // mise en plac gestionnaire evt. sur le JTextField } class GestionnaireEvt implements ActionListener{ // ou autre Listener sur TextField public void actionPerformed(ActionEvent evt) { String saisie = leTextField.getText() ; àNotifier.notificationSaisie(saisie) ; } } }
Hello,
J'ai eu le même problème récemment.
Personnellement il s'agissait de 2 classes du même package, et je l'ai résolu comme ça:
Dans ta deuxième classe, tu récupères le texte de cette façon:
C'est peut-être pas la meilleure solution c'est probablement une des plus simples.
Code : Sélectionner tout - Visualiser dans une fenêtre à part String text = MaPremiereClasse.monJTextField.getText();
bonjour,
j'ai essayé cette méthode :
mais le compilateur me dit qu'il ne connait pas monJTextField.
Code : Sélectionner tout - Visualiser dans une fenêtre à part String text = MaPremiereClasse.monJTextField.getText();
par contre, la classe de mon JtextField est situé dans un fichier et mon panneau dans lequel je souhaite récupérer ce JtextField est dans un autre fichier.
Comment procéder, package+import ?
Devrai-je le faire passer comme argument sur ma fenêtre puis sur mon panneau ? de quel commande s'agit-il ?
Si tu as choisi cette solution pour récupérer le contenu de ton JTextField, alors dans ta classe MaPremiereClasse, tu dois déclarer monJTextField comme étant un attribut statique:
Code : Sélectionner tout - Visualiser dans une fenêtre à part static monJTextField
comme il s'agit de deux fichiers différents devrais-je utiliser des packages ?
voila, j'ai essayé d'utiliser des packages.
dans le fichier contenant le JtextField j'ai ajouté :dans le fichier du panneau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part package joueur;
mais le compilateur ne reconnait pas le package. Peux-tu m'aider ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part import joueur.paneau.*;
Même en aillant changé les attributs en static des JTextField, il me demande un package :
"package joueur does not exist
String Text = joueur.MonJTextField.getText();"
Qu'est ce qu'un IDE ?
merci de vouloir m'aider.
bin en fait j'utilise le terminal de Ubuntu.
ma classe est : "public class joueur extends JPanel"
Une idée, comme ça (personnellement, c'est ce que je ferais).
Pourquoi ne pas mettre une méthode dans la classe qui construit le TextField du genre :
Utilisable de n'importe où...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public String DireTexte(){ return monTextField.getText(); }
Partager