IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Copier les valeurs de TextField dans un autre


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 15
    Par défaut Copier les valeurs de TextField dans un autre
    Bonjour ,

    Sur mon interface graphique, on entre souvent les memes paramètres d'entrées plusieurs fois... Afin de palier à ca, j´ai créé un bouton "Copy" dont j'ai commencé à écrire le code, mais cela ne marche pas, je pense que cela vient des get inadaptés mais je ne trouve pas de solution...
    Voilà mon code :
    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
    public class Copy implements ActionListener, Serializable {
    		private static final long serialVersionUID = 1L;
    		private JPanel jpMain;
    		private JPanel jpCaster;
     
    	public Copy (JButton jbCopy1, JPanel jpMain, JPanel jpCaster) {
    		// TODO Auto-generated constructor stub
    		//this.jpD = jpD;
    		this.jpMain = jpMain;
    		this.jpCaster = jpCaster;
    		jbCopy1.addActionListener(this);
     
    	}
    	@Override
    	public void actionPerformed (ActionEvent arg0){
    		if ( Integer.parseInt(jtNbrOfCaster.getText()) >= (int) 2){
     
     
    			cstrD2.setJlCasterSpeed(cstrD1.getJlCasterSpeed());
    			cstrD2.setJlLength(cstrD1.getJlLength());
    			cstrD2.setJlNbrOfStrd(cstrD1.getJlNbrOfStrd());
    			cstrD2.setJlStrdDist(cstrD1.getJlStrdDist());
    			jpCaster.updateUI();
    			jpMain.updateUI();
     
    		}
     
    	}
    Et mon interface, je voudrais copier les 4 paramètres du Caster 1 au Caster 2 :
    Nom : ProblemeCopy.PNG
Affichages : 715
Taille : 6,8 Ko

    Merci pour votre aide, en espérant etre dans le bonne partie du forum !

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Sans avoir le code des 8 méthodes (setters et getters) ci-dessous, on ne pourra pas t'aider (au moins pour un couple de setter/getter) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    cstrD2.setJlCasterSpeed(cstrD1.getJlCasterSpeed());
    cstrD2.setJlLength(cstrD1.getJlLength());
    cstrD2.setJlNbrOfStrd(cstrD1.getJlNbrOfStrd());
    cstrD2.setJlStrdDist(cstrD1.getJlStrdDist());
    Par ailleurs, les updateUI() que tu appelles ne servent à rien (il n'y a pas de raison d'appeler ces méthodes si tu ne modifies pas les composants d'UI — je parle de modifier les classes).

    On peut avoir besoin de forcer le redessin parfois, sur des composants qui dessinent directement dans le contexte graphique en appelant repaint() (ce qui n'est pas nécessaire pour JTextField dont on modifie la valeur, parce que c'est déjà traité en interne).

    On peut avoir besoin de forcer le réagencement (layout) lorsque les modifications que l'on fait on un impact sur la taille ou la position : dans ce cas, on peut appeler revalidate().
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 15
    Par défaut
    Ok, je me doutais bien pour les update(), merci de l'explication.
    Pour le code c'est bien cela que tu veux ?

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    public JTabbedPane getJtCasterData() {
    		return jtCasterData;
    	}
     
    	public void setJtCasterData(JTabbedPane jtCasterData) {
    		this.jtCasterData = jtCasterData;
    	}
     
    	public JTextFieldAutoSelect getJtNbrOfCaster() {
    		return jtNbrOfCaster;
    	}
     
    	public void setJtNbrOfCaster(JTextFieldAutoSelect jtNbrOfCaster) {
    		this.jtNbrOfCaster = jtNbrOfCaster;
    	}
     
    	public CasterData getCstrD2() {
    		return cstrD2;
    	}
     
    	public void setCstrD2(CasterData cstrD2) {
    		this.cstrD2 = cstrD2;
    	}
     
    	public JPanel getJpStrandDevice2() {
    		return jpStrandDevice2;
    	}
     
    	public void setJpStrandDevice2(JPanel jpStrandDevice2) {
    		this.jpStrandDevice2 = jpStrandDevice2;
    	}
     
    	public JButton getJbAddCommonDevice() {
    		return jbAddCommonDevice;
    	}
     
    	public void setJbAddCommonDevice(JButton jbAddCommonDevice) {
    		this.jbAddCommonDevice = jbAddCommonDevice;
    	}
     
    	public JScrollPane getjSPCommon() {
    		return jSPCommon;
    	}
     
    	public void setjSP3(JScrollPane jSPCommon) {
    		this.jSPCommon = jSPCommon;
    	}
     
    	public LinkedList<PanelDevice> getlStrDevice2() {
    		return lStrDevice2;
    	}
     
    	public void setlStrDevice2(LinkedList<PanelDevice> lStrDevice2) {
    		this.lStrDevice2 = lStrDevice2;
    	}
     
    	public JTextFieldAutoSelect getJtCasterSpeed() {
    		return jtCasterSpeed;
    	}
     
    	public void setJtCasterSpeed(JTextFieldAutoSelect jtCasterSpeed) {
    		this.jtCasterSpeed = jtCasterSpeed;
    	}
     
    	public JTextFieldAutoSelect getJtLength() {
    		return jtLength;
    	}
     
    	public void setJtLength(JTextFieldAutoSelect jtLength) {
    		this.jtLength = jtLength;
    	}
     
    	public JTextFieldAutoSelect getJtNbrOfStrd() {
    		return jtNbrOfStrd;
    	}
     
    	public void setJtNbrOfStrd(JTextFieldAutoSelect jtNbrOfStrd) {
    		this.jtNbrOfStrd = jtNbrOfStrd;
    	}
    Autrement, j'aurais plus vu un code dans le genre dans la méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cstrD2.getJlCasterSpeed.setText(cstrD2.getJlCasterSpeed());

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Non, je parlais du code des méthodes getJlCasterSpeed et setJlCasterSpeed, celles que tu utilises pour faire la copie.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 15
    Par défaut
    Ah je n'avais rien codé la dessus forcement, ca ne marchait pas...

    Mais en réalité, j'ai fait une faute, car ce sont des TextField et elles s'appellent donc jtCasterSpeed. On aura donc des getJtCasterSpeed(), et ceux là sont dans la balise que j'ai envoyé.

    J'ai donc ca maintenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public void actionPerformed(ActionEvent arg0) {
    			if (Integer.parseInt(jtNbrOfCaster.getText()) >= (int) 2) {
     
     
    				cstrD2.setJtCasterSpeed(cstrD1.getJtCasterSpeed());
    				cstrD2.setJtLength(cstrD1.getJtLength());
    				cstrD2.setJtNbrOfStrd(cstrD1.getJtNbrOfStrd());
    				cstrD2.setJtStrdDist(cstrD1.getJtStrdDist());
     
    			}

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par cos12 Voir le message
    Mais en réalité, j'ai fait une faute, car ce sont des TextField
    Des JTextField plutôt non ? (n'utilise pas de java.awt.TextField, mais des javax.swing.JTextField).

    Citation Envoyé par cos12 Voir le message
    et elles s'appellent donc jtCasterSpeed. On aura donc des getJtCasterSpeed(), et ceux là sont dans la balise que j'ai envoyé.
    Je crois comprendre que getJTCasterSpeed() retourne un JTextField (ou un TextField). C'est pour cette raison que je t'ai demandé de me donner le code de ces méthodes : pour savoir quel type était retourné entre autre... pour éviter d'avoir à faire de la divination ou de la supputation !
    En tout cas si tu cherches à transférer des JTextField, oublie ! Ce n'est pas la bonne méthode : c'est le contenu des champs qu'il faut copier, pas les champs. En particulier, parce qu'un champ ne peut avoir qu'un seul parent : donc çà ne fera jamais de copie, mais au mieux un déplacement, et puis que peut bien faire le setter (là aussi si j'avais le code que j'ai demandé, je ne serais pas obligé de (me) poser la question) : affecter juste une variable ou remplacer un composant dans un container ?
    D'autre part, avoir des méthodes qui retourne des champs, au lieu de leur contenu, rend trop dépêndant le code de l'UI, qui pourrait changer à n'importe quel moment, obligeant à changer à plusieurs endroits. Si tu a un champ qui sert à saisie l'age du capitaine, fais un getter et un setter pour manipuler l'age du capitaine, que tu utilises un JTextField, un JSpinner, un JComboBox, ou un JLabel avec une image, voir une caméra pour analyse optique, peu importe, c'est toujours l'age du capitaine...


    Citation Envoyé par cos12 Voir le message
    J'ai donc ca maintenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public void actionPerformed(ActionEvent arg0) {
    			if (Integer.parseInt(jtNbrOfCaster.getText()) >= (int) 2) {
     
     
    				cstrD2.setJtCasterSpeed(cstrD1.getJtCasterSpeed());
    				cstrD2.setJtLength(cstrD1.getJtLength());
    				cstrD2.setJtNbrOfStrd(cstrD1.getJtNbrOfStrd());
    				cstrD2.setJtStrdDist(cstrD1.getJtStrdDist());
     
    			}
    Bah, c'est toujours le même code que depuis le début, et qui me sert à rien de rien, vu que la plupart des méthodes ne sont pas standard, donc je ne peux pas savoir ce qu'elles font.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Réponses: 7
    Dernier message: 01/05/2015, 03h39
  2. Copier les valeurs d'une table dans une autre
    Par Invité dans le forum Requêtes
    Réponses: 1
    Dernier message: 23/08/2013, 16h11
  3. Réponses: 3
    Dernier message: 13/01/2009, 16h55
  4. Copier les valeurs d'une colonne dans une autre
    Par hochimi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/07/2007, 13h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo