Pessoal estou tentando fazer uma calculadora IMC usando os recursos básicos do AWT,é o seguinte tenho que mostrar numeros de vexes que ela foi usado,para cada resultado guardar em uma lista e depois que eu apertar exibir mostrar o 1- peso -altura e sua classe(magro,obeso,etc).A principio esta dando erro na conversão de txt para double...quem puder me ajudar fico grato.
package br.faetec.imc.inicio;
import java.awt.*;
/**
*
* @author Maycon
*/
public class IMC extends Frame {
Panel container;
Button botão1, botão2, botão3;
TextField txt1, txt2, txt3;
Label Label1, Label2, Label3,Label;
List lista;
public IMC() {
setLayout(new BorderLayout());
container = new Panel();
botão1 = new Button("Calcular");
botão2 = new Button("Exibir");
botão3 = new Button("Sair");
txt1 = new TextField(5);
txt2 = new TextField(20);
txt3 = new TextField(20);
Label = new Label("Calculando I.M.C. ");
Label1 = new Label("Quantidade");
Label2 = new Label("Peso");
Label3 = new Label("Altura");
lista = new List(5);
setTitle("Calcular I.M.C.");
reshape(500, 100, 180, 350); //tamanho da tela
add("Center", container);
container.add(Label);
container.add(Label1);
container.add(txt1);
container.add(Label2);
container.add(txt2);
container.add(Label3);
container.add(txt3);
container.add(botão1);
container.add(botão2);
container.add(lista, BorderLayout.CENTER);
container.add(botão3);
show();
}
public boolean action(Event evt, Object componente) {
double peso = Double.parseDouble(txt2.getText());
double altura = Double.parseDouble(txt1.getText());
double result = peso / (altura * altura);
String grau = null;
if (componente.equals("Exit")) {
System.exit(0);
}
if (componente.equals("Calcular")) {
grau = verIMC(result);
}
if (componente.equals("exibir")) {
lista.setName( "" + peso + "" + altura + "é" + grau);
}
return true;
}
public String verIMC(double result) {
String grau = null;
for (int p = 0; p <= 10; p++) {
txt1.setText("" + p);
if (result < 18.5) {
grau = "magro";
}
if (18.5 < result & result < 24.9) {
grau = "saudavel";
}
if (25 < result & result < 29.9) {
grau = "sobrepeso";
}
if (30 < result & result < 34.9) {
grau = "obesidade Um";
}
if (35 < result & result < 39) {
grau = "obesidade dois";
}
if (40 <= result) {
grau = "obesidade tres";
}
}
return grau;
}
public static void main(String[] args) {
new IMC();
}
}
