Problema con mi primer proyecto
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);
}
}
}
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);
}
}
}
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.
