Foros del Web » Programación para mayores de 30 ;) » Java »

Error en calculadora java

Estas en el tema de Error en calculadora java en el foro de Java en Foros del Web. Estoy tratando de hacer una calculadora con jframe pero me sale lo siguiente; --------------------Configuration: <Default>-------------------- cannot find symbol symbol : variable b1 location: class CALC ...
  #1 (permalink)  
Antiguo 23/07/2008, 21:54
 
Fecha de Ingreso: enero-2008
Mensajes: 9
Antigüedad: 16 años, 3 meses
Puntos: 0
Error en calculadora java

Estoy tratando de hacer una calculadora con jframe pero me sale lo siguiente;

--------------------Configuration: <Default>--------------------
cannot find symbol
symbol : variable b1
location: class CALC
if (ae.getSource()==b1){
^
1 error

No entiendo porque me sale ese error si lo instancia, cree, asigne valores pero al momento de compilar me aroja el error

el codigo es el siguiente:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.text.*;

public class CALC extends JFrame implements ActionListener {
public static void main (String argv[] ) {
CALC app=new CALC();
app.setSize(300,500);
app.setVisible(true);
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
}
//CONSTRUCTOR
public CALC(){
setLayout(new GridLayout(5,3,5,5));
JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bmas,bmenos,bpor,bdi v,bc;
JTextField tf;
JPanel p1,p2;
Icon uno,dos,tres,cuatro,cinco,seis,siete,ocho,nueve,ce ro,suma,resta,multi,division,igual,C;//declaro los icon
setLayout(new BorderLayout());
p1=new JPanel(new GridLayout(1,1,10,10));//panel donde se ubicara el area en blanco
p2=new JPanel(new GridLayout(5,1,5,5)); //panel donde se ubicaran los botones
uno=new ImageIcon(\"uno.jpg\");//creo el icon
dos=new ImageIcon(\"dos.jpg\");//creo el icon
tres=new ImageIcon(\"tres.jpg\");//creo el icon
cuatro=new ImageIcon(\"cuatro.jpg\");//creo el icon
cinco=new ImageIcon(\"cinco.jpg\");//creo el icon
seis=new ImageIcon(\"seis.jpg\");//creo el icon
siete=new ImageIcon(\"siete.jpg\");//creo el icon
ocho=new ImageIcon(\"ocho.jpg\");//creo el icon
nueve=new ImageIcon(\"nueve.jpg\");//creo el icon
cero=new ImageIcon(\"cero.jpg\"); //creo el icon
suma=new ImageIcon(\"suma.jpg\");//creo el icon
resta=new ImageIcon(\"resta.jpg\");//creo el icon
multi=new ImageIcon(\"multi.jpg\");//creo el icon
division=new ImageIcon(\"division.jpg\");//creo el icon
igual=new ImageIcon(\"igual.jpg\");//creo el icon
C=new ImageIcon(\"c.jpg\");//creo el icon
b1 = new JButton(uno);//el boton lo relaciono con el icon
b2 = new JButton(dos);//el boton lo relaciono con el icon
b3 = new JButton(tres);//el boton lo relaciono con el icon
b4 = new JButton(cuatro);//el boton lo relaciono con el icon
b5 = new JButton(cinco);//el boton lo relaciono con el icon
b6 = new JButton(seis);//el boton lo relaciono con el icon
b7 = new JButton(siete);//el boton lo relaciono con el icon
b8 = new JButton(ocho);//el boton lo relaciono con el icon
b9 = new JButton(nueve);//el boton lo relaciono con el icon
b0 = new JButton(cero);//el boton lo relaciono con el icon
bmas = new JButton(suma);//el boton lo relaciono con el icon
bmenos = new JButton(resta);//el boton lo relaciono con el icon
bpor = new JButton(multi);//el boton lo relaciono con el icon
bdiv = new JButton(division);//el boton lo relaciono con el icon
bc = new JButton(C);
tf= new JTextField ();
p1.add(tf);
p2.add(b1);
p2.add(b2);
p2.add(b3);
p2.add(b4);
p2.add(b5);
p2.add(b6);
p2.add(b7);
p2.add(b8);
p2.add(b9);
p2.add(bmas);
p2.add(b0);
p2.add(bmenos);
p2.add(bpor);
p2.add(bdiv);
p2.add(bc);
add(p1,BorderLayout.NORTH);//ubico el panel en la parte norte del borderlayout
add(p2,BorderLayout.CENTER);//ubico el panel en la parte centro del borderlayout
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
b0.addActionListener(this);
bmenos.addActionListener(this);
bmas.addActionListener(this);
bpor.addActionListener(this);
bdiv.addActionListener(this);
bc.addActionListener(this);
}

public void actionPerformed(ActionEvent ae){
int res,a,b,total;
char op;

if (ae.getSource()==b1){
res= 1;
//aux=Integer.parseInt(t1.getText());
}

}

}

gracias por cualquier ayuda
  #2 (permalink)  
Antiguo 24/07/2008, 01:55
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Error en calculadora java

Hola,
Posiblemente el problema puede ser el siguiente:
Cita:
Iniciado por cuncanchun Ver Mensaje

public class CALC extends JFrame implements ActionListener {
public static void main (String argv[] ) {
CALC app=new CALC();
app.setSize(300,500);
app.setVisible(true);
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
}
//CONSTRUCTOR
public CALC(){
setLayout(new GridLayout(5,3,5,5));
JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bmas,bmenos,bpor,bdi v,bc;
JTextField tf;
JPanel p1,p2;
La variable b1 es local dentro del ámbito del constructor CALC().
Es decir que al declararla dentro de la función "public CALC()", solo es visible dentro de esa función, aunque sea el constructor.

Debería estar declarada a nivel de la clase para que sea visible dentro de toda la clase, y por consiguiente la función "actionPerformed".

Código:
public class CALC extends JFrame implements ActionListener {
JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bmas,bmenos,bpor,bdiv,bc;
public static void main (String argv[] ) {
CALC app=new CALC();
app.setSize(300,500);
app.setVisible(true);
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//CONSTRUCTOR
public CALC(){
setLayout(new GridLayout(5,3,5,5));
JTextField tf;
JPanel p1,p2;
Saludos,
  #3 (permalink)  
Antiguo 24/07/2008, 20:47
 
Fecha de Ingreso: enero-2008
Mensajes: 9
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Error en calculadora java

hola como estas?

Gracias por tu ayuda, acertadisima la respuesta, lo hice como me indicaste y ya no me genera el error.

Mira como estoy en un proceso de apendizaje me da pena molestarte pero tengo otra duda.

resulta que en cada boton de la calculadora no tengo un texto sino una imagen, esto por aquello que va a ser una calculadora para nilos y se debe estimular su uso.

en el metodo actionPerformed tengo esto: lo que se que esta mal porque getSource no existe para un jbutton, quiero saber como hacer que en mi JTextField se muestre un numero cuando yo oprima un boton.

public void actionPerformed(ActionEvent ae){
int res,a,b,total;
char op;

if (ae.getSource()==b1){
res= 1;
//aux=Integer.parseInt(t1.getText());
}
}

nuevamente gracias por tu gran y acertada ayuda.
  #4 (permalink)  
Antiguo 25/07/2008, 00:14
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Error en calculadora java

Hola,
Bien gracias !

Posiblemente lo puedas resolver de la siguiente forma:

Código:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.text.*;

public class CALC extends JFrame implements ActionListener {
JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bmas,bmenos,bpor,bdiv,bc;
JTextField tf;
public static void main (String argv[] ) {
CALC app=new CALC();
app.setSize(300,500);
app.setVisible(true);
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
}
//CONSTRUCTOR
public CALC(){
setLayout(new GridLayout(5,3,5,5));
JPanel p1,p2;
Icon uno,dos,tres,cuatro,cinco,seis,siete,ocho,nueve,cero,suma,resta,multi,division,igual,C;//declaro los icon
setLayout(new BorderLayout());
p1=new JPanel(new GridLayout(1,1,10,10));//panel donde se ubicara el area en blanco
p2=new JPanel(new GridLayout(5,1,5,5)); //panel donde se ubicaran los botones
uno=new ImageIcon("uno.jpg");//creo el icon
dos=new ImageIcon("dos.jpg");//creo el icon
tres=new ImageIcon("tres.jpg");//creo el icon
cuatro=new ImageIcon("cuatro.jpg");//creo el icon
cinco=new ImageIcon("cinco.jpg");//creo el icon
seis=new ImageIcon("seis.jpg");//creo el icon
siete=new ImageIcon("siete.jpg");//creo el icon
ocho=new ImageIcon("ocho.jpg");//creo el icon
nueve=new ImageIcon("nueve.jpg");//creo el icon
cero=new ImageIcon("cero.jpg"); //creo el icon
suma=new ImageIcon("suma.jpg");//creo el icon
resta=new ImageIcon("resta.jpg");//creo el icon
multi=new ImageIcon("multi.jpg");//creo el icon
division=new ImageIcon("division.jpg");//creo el icon
igual=new ImageIcon("igual.jpg");//creo el icon
C=new ImageIcon("c.jpg");//creo el icon
b1 = new JButton(uno);//el boton lo relaciono con el icon
b2 = new JButton(dos);//el boton lo relaciono con el icon
b3 = new JButton(tres);//el boton lo relaciono con el icon
b4 = new JButton(cuatro);//el boton lo relaciono con el icon
b5 = new JButton(cinco);//el boton lo relaciono con el icon
b6 = new JButton(seis);//el boton lo relaciono con el icon
b7 = new JButton(siete);//el boton lo relaciono con el icon
b8 = new JButton(ocho);//el boton lo relaciono con el icon
b9 = new JButton(nueve);//el boton lo relaciono con el icon
b0 = new JButton(cero);//el boton lo relaciono con el icon
b1.setActionCommand("1");
b2.setActionCommand("2");
b3.setActionCommand("3");
b4.setActionCommand("4");
b5.setActionCommand("5");
b6.setActionCommand("6");
b7.setActionCommand("7");
b8.setActionCommand("8");
b9.setActionCommand("9");
b0.setActionCommand("0");
bmas = new JButton(suma);//el boton lo relaciono con el icon
bmenos = new JButton(resta);//el boton lo relaciono con el icon
bpor = new JButton(multi);//el boton lo relaciono con el icon
bdiv = new JButton(division);//el boton lo relaciono con el icon
bc = new JButton(C);
tf= new JTextField ();
p1.add(tf);
p2.add(b1);
p2.add(b2);
p2.add(b3);
p2.add(b4);
p2.add(b5);
p2.add(b6);
p2.add(b7);
p2.add(b8);
p2.add(b9);
p2.add(bmas);
p2.add(b0);
p2.add(bmenos);
p2.add(bpor);
p2.add(bdiv);
p2.add(bc);
add(p1,BorderLayout.NORTH);//ubico el panel en la parte norte del borderlayout
add(p2,BorderLayout.CENTER);//ubico el panel en la parte centro del borderlayout
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
b0.addActionListener(this);
bmenos.addActionListener(this);
bmas.addActionListener(this);
bpor.addActionListener(this);
bdiv.addActionListener(this);
bc.addActionListener(this);
}

public void actionPerformed(ActionEvent ae){
int res,a,b,total;
char op;

tf.setText(ae.getActionCommand());
//if (ae.getSource()==b1){
//res= 1;
//aux=Integer.parseInt(t1.getText());
//}

}

}
El JButton tiene asociado un Action por defecto, uno de los constructores de JButton acepta un Action como parámetro, pero se puede utilizar solo el ActionCommand, puedes expandir la funcionalidad implementando un Action.

Saludos,

Última edición por HackmanC; 25/07/2008 a las 00:27 Razón: cleanup
  #5 (permalink)  
Antiguo 25/07/2008, 07:57
 
Fecha de Ingreso: enero-2008
Mensajes: 9
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Error en calculadora java

oye gracias me funciona perfecto, ahora me encaminare a que cada vez que digite un numero se me vea el numero anterior mas ekl que digito. pues el problma que tengo es que oprimo el 1 y aparece el 1 pero luego al oprimir 2 deberia verse 12 y se borra el 1 y queda solo 2. debe haber algo que me vaya guardando en una variable eso.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:50.