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