Tengo 3 errores en mi programa
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
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
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.
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.
