Cálculo IMC

17/03/2016

1

Olá! Estou iniciando em Java ME como estudante, e consegui utilizar um código para criação de uma calculadora.

Porém, estou tentando transformar essa calculadora em uma calculadora de Indice de Massa Corporal, onde o resultado do indice é: imc=peso(altura*altura)

Creio que no meu código está faltando alguma coisa, pois não consigo exibir o resultado na ultima caixa de texto. Segue o que desenvolvi, onde as linhas comentadas são do antigo código da calculadora básica:

package calculoimc5;

import javax.microedition.lcdui.ChoiceGroup;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.ImageItem;
import javax.microedition.lcdui.Item;
import javax.microedition.lcdui.StringItem;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;


public class calculoimc extends MIDlet
implements CommandListener {
private Display tela;
private Form form;
private Command cmdSair;


private ChoiceGroup operacoes;
private TextField peso;
private TextField altura;
private TextField valorimc;
private Command cmdCalcular;


public calculoimc() {


tela = Display.getDisplay(this);


cmdSair = new Command("Sair",
Command.EXIT, 1);
cmdCalcular = new Command("Calcular IMC",
Command.OK, 1);


form = new Form("Calculadora IMC");


//criarOperacoes();
criarCampos();



form.append(peso);
form.append(altura);
//form.append(operacoes);
form.append(valorimc);


form.addCommand(cmdSair);
form.addCommand(cmdCalcular);
form.setCommandListener(this);

}


public void startApp() {
tela.setCurrent(form);
}


public void pauseApp() {
}


public void destroyApp(boolean unconditional) {
notifyDestroyed();
}


public void commandAction(Command c, Displayable d) {
if (c == cmdSair) {
destroyApp(true);
}else if ( c == cmdCalcular){

//try {

float pes = Float.parseFloat(peso.getString());
float alt = Float.parseFloat(altura.getString());
float imc = pes/(alt*alt);


//switch(operacoes.getSelectedIndex()){
//case 0: imc = (pes+alt); break;
//case 1: imc = (pes-alt); break;
//case 2: imc = (pes/alt); break;
//case 3: imc = (pes*alt); break;
//}

valorimc.setString(String.valueOf(imc));

//} catch (Exception e) {
//valorimc.setString("Valor inválido.");
//}
}
}



//public void criarOperacoes(){
//operacoes = new ChoiceGroup("Operação:", ChoiceGroup.POPUP);
//operacoes.append("Soma", null);
//operacoes.append("Subtração", null);
//operacoes.append("Divisão", null);
//operacoes.append("Multiplicação", null);
//operacoes.setLayout(Item.LAYOUT_EXPAND);
//}

public void criarCampos(){
peso = new TextField("Peso:", "", 4, TextField.DECIMAL);
peso.setLayout(Item.LAYOUT_EXPAND);

altura = new TextField("Altura:", "", 4, TextField.DECIMAL);
altura.setLayout(Item.LAYOUT_EXPAND);

valorimc = new TextField("Valor do seu IMC:", "", 4, TextField.UNEDITABLE);
valorimc.setLayout(Item.LAYOUT_EXPAND);


}

}





Desde já agradeço toda e qualquer ajuda. Abraços!
Responder