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.
[code]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(); 
}
 
 
}[/code]
         
         
           
        
            
            
            
         
         
             
             
          
       
      
        
          
          
            samuk1  
            
           
           
          
              
                Agosto 26, 2012,  1:02pm
               
               
          #2 
           
         
        
          Cara Primeira coisa edita ai e coloca Formatação Code! Pq senão ninguem vai ficar pedendo tempo lendo algo sem formatação!
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          
Desculpa!Ja arrumei valew pelo toque
         
         
        
            
            
            
         
         
             
             
          
       
      
        
          
          
            samuk1  
            
           
           
          
              
                Agosto 26, 2012,  2:20pm
               
               
          #4 
           
         
        
          Ta primeiro Corrija os Seguintes erros:
1º
double altura = Double.parseDouble(txt1.getText()); 
\\Txt 1 não é quantidade? Então Seria :
double altura = Double.parseDouble(txt3.getText()); 
2º
[code]if (componente.equals(“Exit”)) { 
\“Exit” não existe né… Cuidado com Ctrl+C Ctrl+V… 
if (componente.equals(“Sair”))
if (componente.equals(“exibir”)) { 
\ exibir ´ta minusculo 
if (componente.equals(“Exibir”)) {
{[/code]
Corrija Estes e veja se o Problema COntinua…
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          Cara obrigado !Muita falta de atenção mesmo.Bom não esta funcionando ainda esta dando esse erro
run:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 2
	at br.faetec.imc.inicio.IMC.action(IMC.java:87)
	at java.awt.Component.handleEvent(Component.java:6534)
	at java.awt.Window.postEvent(Window.java:2487)
	at java.awt.Component.postEvent(Component.java:4957)
	at java.awt.Component.postEvent(Component.java:4957)
	at java.awt.Component.dispatchEventImpl(Component.java:4667)
	at java.awt.Component.dispatchEvent(Component.java:4481)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
Tive que alterar:
[code]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 pessoas");
 Label2 = new Label("Peso");
 Label3 = new Label("Altura");
 lista = new List(5);
 setTitle("Calcular I.M.C.");
 reshape(500, 100, 230, 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) { 
if (componente.equals(“Sair”)) { 
System.exit(0); 
}
 if (componente.equals("Calcular")) {
     double peso;
     double altura;
     int r = Integer.parseInt(txt1.getText());
     for (int p = 0; p <= r; p++) {
         double[] result = new double[r];
         String[] grau = new String[r];
         peso = Double.parseDouble(txt2.getText());
         altura = Double.parseDouble(txt3.getText());
         result[p] = peso / (altura * altura);
         grau[p] = verIMC(result[p]);
         if (componente.equals("Exibir")) {
             for (p = 0; p <= 10; p++) {
                 lista.setName("" + p + peso + "" + altura + "é" + grau[p]);
             }
         }
     }
 }
 return true;
 
}
public String verIMC(double par) {
 String grau;
 if (par < 18.5) {
     grau = "magro";
     return grau;
 }
 if (18.5 < par & par < 24.9) {
     grau = "saudavel";
     return grau;
 }
 if (25 < par & par < 29.9) {
     grau = "sobrepeso";
     return grau;
 }
 if (30 < par & par < 34.9) {
     grau = "obesidade Um";
     return grau;
 }
 if (35 < par & par < 39) {
     grau = "obesidade dois";
     return grau;
 }
 if (40 <= par) {
     grau = "obesidade tres";
     return grau;
 }
 return "";
 
}
public static void main(String[] args) { 
new IMC(); 
} 
} 
[/code]
 
 
         
         
        
            
            
            
         
         
             
             
          
       
      
        
          
          
            samuk1  
            
           
           
          
              
                Agosto 26, 2012,  8:48pm
               
               
          #6 
           
         
        
           
Seu Array recebe a quantidade de Pessoas.
int r = Integer.parseInt(txt1.getText());
Mas o Array sempre começa do zero.
Dai :
//substitua isso :
for (int p = 0; p <= r; p++) {
//por isso:
for (int p = 0; p < r; p++) {   
Poque se vc colocar p<=r ele vai tentar criar 1 array a mais do que ele Suporta.
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          Cara Valew pela atenção consegui dar uns ajustes e tah belezinha!Obrigado pela atenção!Wlew