Como fazer um valor dentro de um JTextField aparecer em um JLabel

galera, estou fazendo um programa que pega valores de um JTextField e mostra em um JLabel, mas os valores inseridos no JTextField não estão aparecendo, alguém pode me ajudar?

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JTextField;

public class TelaInicial
{
    public static void main(String[] args){
        JFrame frame = new JFrame("CHAT");
        frame.setLayout(null);
        JTextField primeirosdados = new JTextField();
        frame.add(primeirosdados);
        primeirosdados.setBounds(700,100,100,100);
        JLabel label_um = new JLabel();
        label_um.setBounds(500,300,500,400);
       frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
     }
}

1 - Não adicionou o JLabel ao frame;

frame.add(labelUm);

2 - Não adicionou o valor do JTextField ao JLabel.

label_um.setText(primeirosDados.getText());

Obs.: tomei a liberdade de usar notação Camel Case.

Olá, eu acho que você precisa primeiro adicionar um botão para buscar os dados ou apenas um evento do botão “ENTER” para o Java reconhecer sua ação e após isso utilize um .getText em seu JTextField para buscar o texto inserido e logo em seguida label_um.setText(primeirosdados.getText());

1 curtida

opa sim mano, eu pensei em fazer isso, mas eu não sei como criar um evento para o meu botão “ENTER” se souber e poder me explicar eu agradeço

Alías, sabe se tem como colocar o evento “label_um.setText(primeirosdados.getText());” dentro de uma várivavel? na verdade eu tentei fazer o “label_um.setText(primeirosdados.getText());” como evento do botão, mas não aparece os dados no meu JLabel ai pensei em fazer isso virar uma váriavel e criar outra JLabel e colocar essa váriavel dentro dela ;-; se conseguir arrumar esse meu código um arquivo .txt tá aquiframea.txt (6,8,KB) se conseguir fazer o "“label_um.setText(primeirosdados.getText());” funcionar já agradeço desde agora

(desculpa por falar de mais ksksks)

setText não é um evento, é um método.

Eventos são disparados pelos componentes e você precisa registrar Listeners correspondentes para ser notificado quando eles acontecem.
No seu caso, sugiro adicionar um DocumentListener ao Document do seu JTextField.

Exemplo:

import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;

@SuppressWarnings("serial")
public class TelaExemplo extends JFrame {

    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            TelaExemplo tela = new TelaExemplo();
            tela.setDefaultCloseOperation(EXIT_ON_CLOSE);
            tela.setLocationRelativeTo(null);
            tela.setVisible(true);
        } catch (Throwable t) {
            t.printStackTrace();
        }
    }

    private JTextField textField;
    private JLabel label;

    public TelaExemplo() {
        super("Tela de Exemplo");
        setMinimumSize(new Dimension(480, 320));

        textField = new JTextField();
        textField.setPreferredSize(new Dimension(200, 30));

        // registrar um DocumentListener para receber notificações quando o conteúdo do JTextField é alterado
        textField.getDocument().addDocumentListener(new DocumentListener() {

            @Override
            public void removeUpdate(DocumentEvent e) {
                atualizaLabel(); // chama o método atualizaLabel quando um conteúdo for apagado do JTextField
            }

            @Override
            public void insertUpdate(DocumentEvent e) {
                atualizaLabel(); // chama o método atualizaLabel quando um conteúdo for inserido no JTextField
            }

            @Override
            public void changedUpdate(DocumentEvent e) {} // evento ignorado
        });

        label = new JLabel();
        label.setPreferredSize(new Dimension(200, 30));

        Container container = getContentPane();
        container.setLayout(new FlowLayout(FlowLayout.CENTER));
        container.add(textField);
        container.add(label);
        pack();
    }

    private void atualizaLabel() {
        label.setText(textField.getText());
    }

}
1 curtida