44 votes

Comment récupérer la valeur d'un JTextField dans Java Swing ?

Comment pouvons-nous récupérer la valeur d'un champ de texte dans actionPerformed()? J'ai besoin que la valeur soit convertie en String pour un traitement ultérieur. J'ai créé un champ de texte et en cliquant sur un bouton, j'ai besoin de stocker la valeur saisie dans un String. Pouvez-vous fournir un extrait de code s'il vous plaît?

13 votes

Avez-vous essayé de lire la javadoc ?

2 votes

Il s'agit d'un doublon. Peut-être pas d'une seule question. Mais ce n'est pas un nouveau problème. Obtenir le texte et Ajouter un écouteur d'actions. De plus, je suis sûr que si vous le cherchez sur Google, il y a même un exemple pour ce que vous décrivez.

0 votes

Il est très facile d'obtenir une valeur à partir de JTextfield.. essayez de lire la documentation Java........cela vous aidera à développer des programmes..

70voto

Harry Joy Points 27760
testField.getText()

Consultez la documentation de JTextField

Un exemple de code est le suivant :

button.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent ae){
      String textFieldValue = testField.getText();
      // .... faire une opération sur la valeur ...
   }
})

10voto

Chetan Points 184
* Tout d'abord, nous déclarons JTextField de cette manière

JTextField testField = new JTextField(10);

* Nous pouvons obtenir la valeur du textfield en String de cette manière lors de tout événement de clic sur un bouton.

button.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent ae){
      String getValue = testField.getText()

   }
})

8voto

Comment récupérer une valeur d'un champ texte?

mytestField.getText();

Exemple d' ActionListner:

mytextField.addActionListener(this);

public void actionPerformed(ActionEvent evt) {
    String text = textField.getText();
    textArea.append(text + newline);
    textField.selectAll();
}

1 votes

@trashgod : c'est juste la chaîne "\n"

4 votes

Peut-être quelque chose comme String newline = System.getProperty("line.separator"); serait correct ?

4voto

jayesh Points 522
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Swingtest extends JFrame implements ActionListener
{
    JTextField txtdata;
    JButton calbtn = new JButton("Calculer");

    public Swingtest()
    {
        JPanel myPanel = new JPanel();
        add(myPanel);
        myPanel.setLayout(new GridLayout(3, 2));
        myPanel.add(calbtn);
        calbtn.addActionListener(this);
        txtdata = new JTextField();
        myPanel.add(txtdata);
    }

    public void actionPerformed(ActionEvent e)
    {
        if (e.getSource() == calbtn) {
            String data = txtdata.getText(); // Effectuez votre opération
            System.out.println(data);
        }
    }

    public static void main(String args[])
    {
        Swingtest g = new Swingtest();
        g.setLocation(10, 10);
        g.setSize(300, 300);
        g.setVisible(true);
    }
}

maintenant ça marche

0 votes

Code reformaté; veuillez revenir en arrière si incorrect. Malheureusement, cela ne compile pas.

0 votes

Veuillez ne pas crier; cela donne l'impression que vous êtes en colère. Même en ignorant les imports manquants, il semble que vous manquez le constructeur. Puis-je vous aider à le corriger?

0 votes

Vous comprenez comment obtenir la valeur d'une zone de texte donc c'est bon

4voto

ArifMustafa Points 1235

Ce que j'ai trouvé utile, c'est cette condition qui se trouve ci-dessous.

String tempEmail = "";
JTextField tf1 = new JTextField();

tf1.addKeyListener(new KeyAdapter(){
    public void keyTyped(KeyEvent evt){
         tempEmail = ((JTextField)evt.getSource()).getText() + String.valueOf(evt.getKeyChar());
    }
});

0 votes

Il y a un problème : les touches de contrôle. elles seront imprimées dès que vous les appuyez. Par exemple, CONTROL, ALT, BACK, etc. Toutes ces touches seront imprimées dans votre chaîne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X