Problema con mi primer proyecto

alberto32
20 de Noviembre del 2007
Hola amigos, soy nuevo en java, estoy en casa realizando mi primer proyecto de una calculadora con paneles y escuchador de eventos, mi problema es a la hora operador con los operadores, alguien podria ayudarme??? os adjunto el codigo.

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
import java.util.*;

public class EjerCalcu extends JFrame
{
private final String[] nombresBotones = {"7","8","9","/","4","5","6","*",
"1","2","3","-","0","=","+","BORRAR"};
private JButton[] botones;
private JPanel panelDisplay, panelBotones;
private JTextField campoDisplay;
public int opemas, opemenos, opemulti, opedividir, total, puntoDecimal;
boolean nuevoNumero = true;
boolean numeroDecimal = false;
String cadDecimal="";
int op=0;

public EjerCalcu()
{
super ("La Calculadora mas Simple de Java");

Container contenedor = getContentPane();

//**************************************************
// Declaracion de los Botones
//**************************************************
Vector vector = new Vector();
botones = new JButton[nombresBotones.length];
panelBotones = new JPanel();
panelBotones.setLayout(new GridLayout(5,botones.length));
panelBotones.setBackground(Color.GREEN);

//**************************************************
// Declaracion del Display
//**************************************************

campoDisplay = new JTextField("0",10);
campoDisplay.setEditable(false);
campoDisplay.setForeground(Color.red);
campoDisplay.setFont(new Font("letra",Font.BOLD,25));
manejadorEventos manejador = new manejadorEventos();

//**************************************************
// Visualizacion del display y de los Botones
//**************************************************

for (int i=0; i<botones.length; i++)
{
botones[i] = new JButton (nombresBotones[i]);
botones[i].addActionListener((ActionListener) manejador);
panelBotones.add(botones[i]);

}
contenedor.add(panelBotones,BorderLayout.SOUTH);
contenedor.add(campoDisplay,BorderLayout.WEST);

setSize(450, 250);
setVisible(true);
}

// *********************************************
// Clase para añadir digitos
//**********************************************

private class manejadorEventos implements ActionListener{
String digito="";
Vector numero = new Vector();
//int op=0;
int numeroNuevo=0;
int numero1=0;
String total;

public void actionPerformed (ActionEvent evento)
{
if (evento.getActionCommand()=="7")
{
cadDecimal+="7";
campoDisplay.setText(cadDecimal);
numero.add(cadDecimal);
}
if (evento.getActionCommand()=="8")
{
cadDecimal+="8";
campoDisplay.setText(cadDecimal);
numero.add(cadDecimal);
}
if (evento.getActionCommand()=="9")
{
cadDecimal+="9";
campoDisplay.setText(cadDecimal);
numero.add(cadDecimal);
}
if (evento.getActionCommand()=="0")
{
cadDecimal+="0";
campoDisplay.setText(cadDecimal);
numero.add(cadDecimal);
}
if (evento.getActionCommand()=="1")
{
cadDecimal+="1";
campoDisplay.setText(cadDecimal);
numero.add(cadDecimal);
}
if (evento.getActionCommand()=="2")
{
cadDecimal+="2";
campoDisplay.setText(cadDecimal);
numero.add(cadDecimal);
}
if (evento.getActionCommand()=="3")
{
cadDecimal+="3";
campoDisplay.setText(cadDecimal);
numero.add(cadDecimal);
}
if (evento.getActionCommand()=="4")
{
cadDecimal+="4";
campoDisplay.setText(cadDecimal);
numero.add(cadDecimal);
}
if (evento.getActionCommand()=="5")
{
cadDecimal+="5";
campoDisplay.setText(cadDecimal);
numero.add(cadDecimal);
}
if (evento.getActionCommand()=="6")
{
cadDecimal+="6";
campoDisplay.setText(cadDecimal);
numero.add(cadDecimal);
}
if (evento.getActionCommand()=="+")
{
op=1;
cadDecimal=digito;

}
if (evento.getActionCommand()=="-")
{
op=2;
cadDecimal=total;
}
if (evento.getActionCommand()=="*")
{
op=3;
}
if (evento.getActionCommand()=="/")
{
op=4;
}
if (evento.getActionCommand()=="=")
{
op=5;
}
if (evento.getActionCommand()=="BORRAR")
{
campoDisplay.setText("0");
cadDecimal="";
numero.removeAllElements();
}
}
public void operaciones()
{
int total=0;
switch(op)
{
case op=1:
total = total + numero;

case op=2:
total = total + numero;

}





public void main (String[] args)
{
EjerCalcu aplicacion = new EjerCalcu();
aplicacion.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
}


javier
20 de Noviembre del 2007
Hola Alberto, estoy trabajando tambien con un proyecto de calculadora sencilla para java y estuve pensando en usar los operadores como un determinante en los eventos ya que cuando usas uno se cambia el display y se inicializa con otra variable para poder operarlas, pero se necesita cambiar la variable primaria para inicializar una nueva a la hora de hacer un tercer calculo, por otra parte mi problema es pretender que el usuario no pueda introducir mas de una coma para operaciones decimales y quisiera saber si puedo tomar la cadena del display y convertirla a Float de alguna otra forma.