Criei um JFrame com o Eclipse (não manualmente) contendo um JTextField, um Botão e um JLabel que vai mostrar o resultado.
A ideia é simples. Simplesmente mostrar o valor digitado.
Clicando duas vezes no botão “Calcular” o eclipse me leva ao trecho do código na classe:
JButton btnCalcular = new JButton(“Calcular”);
btnCalcular.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
resultado.setText(campoDeTexto.getText());
}
});
“resultado” é a variavel do JLabel. Mas não consigo acessar. O que faço? Tudo está na mesma classe.
posta o código da classe, e formata ele como código (seleciona e dá Ctrl+Shift+C)
Consegui fazer funcionar, mas não entendi muito bem as implicações da alteração que fiz.
O código cria o JLabel dessa forma:
JLabel resultado = new JLabel();`
Pois bem, o que fiz foi declarar na classe dessa forma:
` private JLabel resultado;`
E onde havia o código anterior que fora criado pelo eclipse, alterei para simplesmente:
resultado = new JLabel();`
Finalmente, dentro de ActionPerformed deixei:
resultado.setText(qtdDias.getText());
Ao executar, o resultado foi alterado para o valor digitado no campo qtdDias.
Não consegui entender o porquê de ter funcionado. Qual seria a diferença. Imagino que seja algo relacionado a encapsulamento.
Não sei se quando crio o JFrame com a ajuda do Eclipse eu tenho que sempre alterar o código para declarar primeiro as variáveis dos componentes. Parece um retrabalho estranho.
Sou novato, estou lendo e aprendendo com o livro “Java - Como Programar.”
Algo a acrescentar?