Pro ejemplo:
si quiero sumar 5 + 7 entonces al presionar el signo + o cualquier otro signo para las operaciones desaparece el numero 5. Las operaciones las hace bien pero eso de que desaparesca el numero cuando se presiona el signo no me gusta y no he podido encontrar el problema.
Clase principal:
Código Java:
Ver original
package calculadora; import javax.swing.*; class Calculadora{ SubCalculadora ventana = new SubCalculadora(); ventana.setBounds(10, 10, 280, 318); ventana.setVisible(true); ventana.setResizable(false); ventana.setLocationRelativeTo(null); ventana.setTitle("Calculadora"); } }
subClase o donde estan los codigos de los botones y todo:
Código Java:
Ver original
package calculadora; import java.awt.Color; import javax.swing.*; import java.awt.event.*; JButton salir; String memoria1; String signo; String memoria2; public SubCalculadora(){ setLayout(null); campoTexto.setBounds(10, 10, 255, 40); add(campoTexto); b7.setBounds(10, 53, 50, 50); add(b7); b7.addActionListener(this); b8.setBounds(61, 53, 50, 50); add(b8); b8.addActionListener(this); b9.setBounds(112, 53, 50, 50); add(b9); b9.addActionListener(this); div.setBounds(163, 53, 50, 50); add(div); div.addActionListener(this); c.setBounds(214, 53, 50, 50); add(c); c.addActionListener(this); b4.setBounds(10, 104, 50, 50); add(b4); b4.addActionListener(this); b5.setBounds(61, 104, 50, 50); add(b5); b5.addActionListener(this); b6.setBounds(112, 104, 50, 50); add(b6); b6.addActionListener(this); mult.setBounds(163, 104, 50, 50); add(mult); mult.addActionListener(this); retroceso.setBounds(214, 104, 50, 50); add(retroceso); retroceso.addActionListener(this); b1.setBounds(10, 155, 50, 50); add(b1); b1.addActionListener(this); b2.setBounds(61, 155, 50, 50); add(b2); b2.addActionListener(this); b3.setBounds(112, 155, 50, 50); add(b3); b3.addActionListener(this); rest.setBounds(163, 155, 50, 50); add(rest); rest.addActionListener(this); b0.setBounds(10, 206, 50, 50); add(b0); b0.addActionListener(this); punto.setBounds(61, 206, 50, 50); add(punto); punto.addActionListener(this); igual.setBounds(112, 206, 50, 50); add(igual); igual.addActionListener(this); sum.setBounds(163, 206, 50, 50); add(sum); sum.addActionListener(this); // Codigo boton Salir. salir.setBounds(61, 257, 100, 30); add(salir); salir.addActionListener(this); } if(e.getSource() == salir){ } if(e.getSource() == c){ campoTexto.setText(""); } if(e.getSource() == b1){ campoTexto.setText(campoTexto.getText() + "1"); } if(e.getSource() == b2){ campoTexto.setText(campoTexto.getText() + "2"); } // Concatenacion boton3 if(e.getSource() == b3){ campoTexto.setText(campoTexto.getText() + "3"); } // Concatenacion boton4 if(e.getSource() == b4){ campoTexto.setText(campoTexto.getText() + "4"); } // Concatenacion boton5 if(e.getSource() == b5){ campoTexto.setText(campoTexto.getText() + "5"); } // Concatenacion boton6 if(e.getSource() == b6){ campoTexto.setText(campoTexto.getText() + "6"); } if(e.getSource() == b7){ campoTexto.setText(campoTexto.getText() + "7"); } if(e.getSource() == b8){ campoTexto.setText(campoTexto.getText() + "8"); } if(e.getSource() == b9){ campoTexto.setText(campoTexto.getText() + "9"); } if(e.getSource() == b0){ campoTexto.setText(campoTexto.getText() + "0"); } if(cadena1.length()>0){ cadena1 = cadena1.substring(0, cadena1.length()-1); campoTexto.setText(cadena1); } } if(e.getSource() == punto){ if(cadena.length() <= 0){ campoTexto.setText("0."); }else{ if(!existePunto(campoTexto.getText())){ campoTexto.setText(campoTexto.getText() + "."); } } }// Fin del if de punto. // Boton de sumar(+) if(e.getSource() == sum){ if(!campoTexto.getText().equals(""))// Comparamos que la pantalla de la calculadora no este en blanco. { memoria1 = campoTexto.getText(); signo = "+"; campoTexto.setText(""); } }//Fin del if para Suma. // Boton de RESTAR(-) if(e.getSource() == rest){ if(!campoTexto.getText().equals(""))// Comparamos que la pantalla de la calculadora no este en blanco. { memoria1 = campoTexto.getText(); signo = "-"; campoTexto.setText(""); } }//Fin del if para resta // Boton de multiplicacion(*) if(e.getSource() == mult){ if(!campoTexto.getText().equals(""))// Comparamos que la pantalla de la calculadora no este en blanco. { memoria1 = campoTexto.getText(); signo = "*"; campoTexto.setText(""); } }//Fin del if para multiplicacion // Boton de Division(/) if(e.getSource() == div){ if(!campoTexto.getText().equals(""))// Comparamos que la pantalla de la calculadora no este en blanco. { memoria1 = campoTexto.getText(); signo = "/"; campoTexto.setText(""); } } // Boton de igual if(e.getSource() == igual){ String resultado; memoria2 = campoTexto.getText(); if(!memoria2.equals("")){ resultado = calculadora(memoria1, memoria2, signo); campoTexto.setText(resultado); } } } // Codigo para el metodo calculadora que usamos en el boton igual. String respuesta; // SUMAR if(signo.equals("+")){ } // RESTAR if(signo.equals("-")){ } // MULTIPLICAR if(signo.equals("*")){ } // DIVIDIR if(signo.equals("/")){ } respuesta = resultado.toString(); return respuesta; } // Codigo para el metodo existePunto. boolean resultado = false; for (int i = 0; i < cadena.length(); i++) { if(cadena.substring(i, i+1).equals(".")){ resultado = true; break; } } return resultado; } }