Estou fazendo um programa com duas telas, na tela 1 quero armazenar um dado String do JTextField em uma variável e mostrar esse dado na tela 2. Como faço isso?
vc pode criar um set da vaiavel da janela 1 exemplo public void setTexto(texto){this.texto = texto } e na janela 2 vc criar outra jTF.setTexto. da uma estudada nas funções gets e setes
Veja uma forma de fazer:
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
public class Main {
public static void main(String[] args) throws Exception {
OnChangeEvent onChange = janela2();
janela1(onChange);
}
private static void janela1(OnChangeEvent onChange) {
JFrame j1 = new JFrame("Janela 1");
j1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
j1.setSize(300, 300);
JTextField txt = new JTextField();
txt.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
update();
}
@Override
public void removeUpdate(DocumentEvent e) {
update();
}
@Override
public void changedUpdate(DocumentEvent e) {
update();
}
private void update() {
onChange.update(txt.getText());
}
});
txt.setSize(200, 25);
j1.add(txt);
j1.setVisible(true);
}
private static OnChangeEvent janela2() {
JFrame j2 = new JFrame("Janela 2");
j2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
j2.setSize(300, 300);
JLabel lbl = new JLabel("Teste");
lbl.setSize(200, 25);
j2.add(lbl);
j2.setVisible(true);
return (newValue) -> {
lbl.setText(newValue);
lbl.repaint();
};
}
interface OnChangeEvent {
void update(String newValue);
}
}
O código foi feito apenas para exemplificar a ideia.
Valeu Lucas!
vc pode Usar jt_fild.setText(“Para trocar o texto quando usa por exemplo um clik no botao!”);
String o_que_Digitou = jt_fild.getText(); // para pegar um texto digitado.
OBS: textos serão do tipo String, então se quiser pegar números para contas vc terá que usar a classe involucro para converter String para int ou outros numéricos.
ex: int valor1 = integer.parseInt( jt_fild.getText());