web-dev-qa-db-fra.com

Swing/Java: comment utiliser correctement les chaînes getText et setText

J'essaie de faire en sorte que l'entrée nameField apparaisse dans une Label appelée label1 après que l'on a cliqué sur une Button appelée button1 . Pour le moment, il est écrit: 'txt' et je comprends pourquoi. Mais je ne sais pas comment utiliser la chaîne! Quelqu'un peut-il m'expliquer ce que je fais de mal et comment utiliser cette chaîne correctement? 

import Java.awt.event.ActionEvent;
import Java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class thisismytest2 {
    public static void main(String[] args) {

        final JFrame frame = new JFrame();  
        JPanel panel = new JPanel();    
        JTextField nameField = new JTextField("...", 2);    
        JButton button1 = new JButton();
        final JLabel label1 = new JLabel();
        label1.setText("txt");
        label1.setVisible(false);
        String txt = nameField.getText();

        frame.add(panel);
        panel.add(button1);
        panel.add(label1);
        frame.setSize(200,200);
        frame.setVisible(true);
        panel.add(nameField);
        frame.setSize(600,400); 
        nameField.setBounds(400, 40, 400, 30);

        button1.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent arg0) {

                label1.setVisible(true);
            }
        });
        }
        }
6
Opoe

Vous définissez le texte de l’étiquette avant que le bouton ne soit cliqué sur "txt". Lorsque vous cliquez sur le bouton, appelez plutôt setText() sur l'étiquette et transmettez-lui le texte du champ de texte.

Exemple:

label1.setText(nameField.getText()); 
6
jzd

dans votre méthode d'action, appelez:

label1.setText(nameField.getText());

Ainsi, lorsque vous cliquerez sur le bouton, label sera mis à jour avec le texte nameField.

4
MBU

la méthode getText renvoie une chaîne, tandis que la setText reçoit une chaîne, vous pouvez donc l'écrire comme label1.setText(nameField.getText()); dans votre écouteur.

1
MByD

Configurez un DocumentListener sur nameField. Lorsque nameField est mis à jour, mettez à jour votre étiquette.

http://download.Oracle.com/javase/1.5.0/docs/api/javax/swing/JTextField.html

0
Sam-L