Tengo 3 errores en mi programa

Edwin
29 de Julio del 2003
Mi programa es el siguiente:

import java.awt.*;
import java.util.*;
import java.lang.*;
import java.awt.event.*;
import javax.swing.*;


public class ProyectoProgra extends JFrame implements ActionListener
{
JTextArea objeto1;
JTextField objeto2;

public ProyectoProgra()
{

String menu=" 1.Sumarn"+
" 2.Convertir de base 10 a base 2n"+
" 3.Convertir de base 2 a base 10n"+
" 4.Salir";

Container c=getContentPane();
c.setLayout(new FlowLayout());
objeto1 = new JTextArea(10,20);
objeto2 = new JTextField(10);
objeto2.addActionListener(this);
objeto1.setText("menu");
c.add(objeto1);
c.add(objeto2);

}

public void actionPerformed(ActionEvent obj)
{
int n=Integer.parseInt(objeto2.getText());

switch (n)
{
case 1:
Sumar();
break;

case 2:
Base10a2();
break;

case 3:
Base2a10();
break;

case 4:
Salir();
break;

default:
JOptionPane.showMessageDialog(null,"Opcion Invalida, solo entre 1 y 4");
}
}

public void Sumar()
{
int n1=Integer.parseInt(JOptionPane.showInputDialog("Numero 1"));
int n2=Integer.parseInt(JOptionPane.showInputDialog("Numero 2"));
JOptionPane.showMessageDialog(null,"La suma de los numeros que ha digitado es:"+(n1+n2));
}

public String DecBin(int nume)
{
int divid = nume;
int resid = 0;
int coci = 0;
boolean cont = true;
String nuevonum = "";
String auxnum = "";

while (cont == true)
{
if (divid > 2)
{
resid = divid % 2;
nuevonum+=resid;
coci = divid / 2;
divid = coci;
}
else
{
cont = false;
nuevonum+=divid;
}
}
auxnum = nuevonum;
nuevonum="";
for (int i=auxnum.length()-1; i>=0; i--)
nuevonum+=auxnum.charAt(i);
return nuevonum;
}


public void Base10a2()
{
int b1=Integer.parseInt(JOptionPane.showInputDialog("Escribir Numero en Base 10:"));
JOptionPane.showMessageDialog(null,"El Numero al pasarlo a Base 2 es:"+this.DecBin(b1));
}

public int Elevar(int Base, int Exp)
{
int result=1;
for (int i=0; i<Exp; i++)
result=result*Base;

return result;
}

public int BinDec(String numdec)
{
int Decimal=0;
int Base=0;

for (int Exp=numdec.length()-1; Exp>=0; Exp--)
{
Base=Integer.parseInt(numdec.charAt(i));
Decimal+=this.Elevar(Base,Exp);
}
return Decimal;
}

public void Base2a10()
{
String nume=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite el Numero Binario"));
this.BinDec(nume);
JOptionPane.showMessageDialog(null,"El Numero en Base 10 es:"+BinDec);

}

public void Salir()
{

}

}

**************************************************************************
Mi programa de prueba para la clase es:

public class TestProyectoProgra
{
public static void main(String args[])
{
ProyectoProgra Test = new ProyectoProgra();


}
}
***************************************************************************
El problema esta en que me salen 3 errores.

C:Documents and SettingseguzmanDesktopProyectoPrograProyectoProgra.java:120: Undefined variable: i
Base=Integer.parseInt(numdec.charAt(i));
^
C:Documents and SettingseguzmanDesktopProyectoPrograProyectoProgra.java:128: Incompatible type for declaration. Can't convert int to java.lang.String.
String nume=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite el Numero Binario"));
^
C:Documents and SettingseguzmanDesktopProyectoPrograProyectoProgra.java:130: Reference to method BinDec in class ProyectoProgra as if it were a variable.
JOptionPane.showMessageDialog(null,"El Numero en Base 10 es:"+BinDec);
^
3 errors

Tool completed with exit code 1



Agradeceria si alguien me ayuda a solucionar estos errores pues no entiendo que pasa.
Gracias. Edwin

keko
29 de Julio del 2003
Hola,
Basicamente y a "bote pronto", parece ser que la variable i del for no existe, deberias poner de indice la variable Exp.
No puedes asignar un integer a un string, es es el segundo error. Sobra el casting a int.
El tercer error es porque usas el metodo BinDec como si fuera una variable y es un metodo. Prueba a poner "JOptionPane.showMessageDialog(null,"El Numero en Base 10 es:"+BinDec(MiArgumento));
"

Son errores muy básicos, seguro que con un poco de atención los hubieras sacado tú mismo.