Olá!
O programa abaixo deveria usar uma interface gráfica para receber tres valores e mostrar seu produto. O problema é que, ao clicar no botão Calcular, nada acontece. Eu não sei se o problema está no meu cálculo, na maneira como capturo o evento ou na hora de mostrar o resultado mas acho que é o último caso…
Outra coisa… ao rodar esse código, o compilador sempre avisa que “handleEvent(java.awt.Event) in java.awt.Component has been deprecated”
O que significa isso?
Obrigado pela atenção!
import java.awt.*;
import javax.swing.*;
public class exercicio08 extends JFrame
{
JTextField texto[];
JLabel lblValores, Resultado, rotulos[];
JButton botaoCalcular;
public exercicio08()
{
super("Java!");
}
public void criaJanela()
{
int i;
setLayout(new BorderLayout());
lblValores = new JLabel("Valores");
add(lblValores, "North");
texto = new JTextField[3];
rotulos = new JLabel[3];
Panel p = new Panel();
p.setLayout(new GridLayout(3,2));
for(i=0; i<3; i++)
{
rotulos[i] = new JLabel("Valor " + Integer.toString(i+1) + ": ");
p.add(rotulos[i]);
texto[i] = new JTextField("", 20);
p.add(texto[i]);
}
add(p, "Center");
Panel p2 = new Panel();
p2.setLayout(new GridLayout(2,1));
botaoCalcular = new JButton("Calcular");
p2.add(botaoCalcular);
Resultado = new JLabel(" ");
p2.add(Resultado);
add(p2, "South");
pack();
setVisible(true);
}
public static void main(String args[])
{
exercicio08 ex08 = new exercicio08();
ex08.criaJanela();
}
public boolean handleEvent(Event e)
{
if(e.id == Event.WINDOW_DESTROY)
{
System.exit(0);
}
if(e.id == Event.ACTION_EVENT &&
e.target == botaoCalcular)
{
calcula();
}
return super.handleEvent(e);
}
private void calcula()
{
int i;
String temp;
double prod = 1;
try
{
for(i=0; i<3; i++)
{
temp = texto[i].getText();
prod = prod*(Double.parseDouble(temp));
}
Resultado.setText(Double.toString(prod));
}
catch(Exception e)
{
Resultado.setText("Valores inválidos");
for(i=0; i<3; i++)
texto[i].setText("");
}
}
}