Sie sind auf Seite 1von 10

package calculadora; import java.awt.event.KeyEvent; import java.util.StringTokenizer; public class FrameCalculadora extends javax.swing.

JFrame { private boolean oper1Introducido; private boolean igualPulsado; private boolean introduciendoOperando; private Double oper1 , oper2; String operacion; boolean operadorPulsado; /** Creates new form FrameCalculadora */ public FrameCalculadora() { resetEstado(); initComponents(); } @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { pantalla = new javax.swing.JTextField(); btnPunto = new javax.swing.JButton(); btnDivide = new javax.swing.JButton(); btnCuatro = new javax.swing.JButton(); btnUno = new javax.swing.JButton(); btnSeis = new javax.swing.JButton(); btnOcho = new javax.swing.JButton(); btnCinco = new javax.swing.JButton(); btnDos = new javax.swing.JButton(); btnNueve = new javax.swing.JButton(); btnTres = new javax.swing.JButton(); btnCero1 = new javax.swing.JButton(); btnC = new javax.swing.JButton(); btnSiete1 = new javax.swing.JButton(); btnMas = new javax.swing.JButton(); btnMenos = new javax.swing.JButton(); btnIgual = new javax.swing.JButton(); btnPor = new javax.swing.JButton(); etiInfo = new javax.swing.JTextField(); btnReset = new javax.swing.JButton(); btnCambioSigno = new javax.swing.JButton(); panelFondo = new javax.swing.JPanel(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("Calculadora Salva"); setBackground(java.awt.Color.pink); setBounds(new java.awt.Rectangle(0, 0, 300, 400)); setMinimumSize(new java.awt.Dimension(420, 340)); setResizable(false); getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout( )); pantalla.setEditable(false); pantalla.setBackground(new java.awt.Color(204, 204, 255)); pantalla.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N pantalla.setHorizontalAlignment(javax.swing.JTextField.RIGHT); pantalla.setText("0"); pantalla.setBorder(new javax.swing.border.LineBorder(new java.awt.Color( 0, 0, 0), 1, true)); pantalla.setPreferredSize(new java.awt.Dimension(300, 20));

pantalla.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { pantallaActionPerformed(evt); } }); getContentPane().add(pantalla, new org.netbeans.lib.awtextra.AbsoluteCon straints(20, 10, 370, 40)); btnPunto.setText("."); btnPunto.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { btnPuntoMouseClicked(evt); } }); getContentPane().add(btnPunto, new org.netbeans.lib.awtextra.AbsoluteCon straints(90, 230, 50, 50)); btnDivide.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N btnDivide.setText("/"); btnDivide.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { btnDivideMouseClicked(evt); } }); getContentPane().add(btnDivide, new org.netbeans.lib.awtextra.AbsoluteCo nstraints(320, 80, 50, 50)); btnCuatro.setText("4"); btnCuatro.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { btnCuatroMouseClicked(evt); } }); getContentPane().add(btnCuatro, new org.netbeans.lib.awtextra.AbsoluteCo nstraints(40, 130, 50, 50)); btnUno.setText("1"); btnUno.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { btnUnoMouseClicked(evt); } }); getContentPane().add(btnUno, new org.netbeans.lib.awtextra.AbsoluteConst raints(40, 180, 50, 50)); btnSeis.setText("6"); btnSeis.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { btnSeisMouseClicked(evt); } }); getContentPane().add(btnSeis, new org.netbeans.lib.awtextra.AbsoluteCons traints(140, 130, 50, 50)); btnOcho.setText("8"); btnOcho.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { btnOchoMouseClicked(evt); } });

getContentPane().add(btnOcho, new org.netbeans.lib.awtextra.AbsoluteCons traints(90, 80, 50, 50)); btnCinco.setText("5"); btnCinco.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { btnCincoMouseClicked(evt); } }); getContentPane().add(btnCinco, new org.netbeans.lib.awtextra.AbsoluteCon straints(90, 130, 50, 50)); btnDos.setText("2"); btnDos.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { btnDosMouseClicked(evt); } }); getContentPane().add(btnDos, new org.netbeans.lib.awtextra.AbsoluteConst raints(90, 180, 50, 50)); btnNueve.setText("9"); btnNueve.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { btnNueveMouseClicked(evt); } }); getContentPane().add(btnNueve, new org.netbeans.lib.awtextra.AbsoluteCon straints(140, 80, 50, 50)); btnTres.setText("3"); btnTres.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { btnTresMouseClicked(evt); } }); getContentPane().add(btnTres, new org.netbeans.lib.awtextra.AbsoluteCons traints(140, 180, 50, 50)); btnCero1.setText("0"); btnCero1.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { btnCero1MouseClicked(evt); } }); btnCero1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnCero1ActionPerformed(evt); } }); getContentPane().add(btnCero1, new org.netbeans.lib.awtextra.AbsoluteCon straints(40, 230, 50, 50)); btnC.setText("CE"); btnC.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { btnCMouseClicked(evt); } }); getContentPane().add(btnC, new org.netbeans.lib.awtextra.AbsoluteConstra

ints(270, 230, 50, 50)); btnSiete1.setText("7"); btnSiete1.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { btnSieteMouseClicked(evt); } }); getContentPane().add(btnSiete1, new org.netbeans.lib.awtextra.AbsoluteCo nstraints(40, 80, 50, 50)); btnMas.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N btnMas.setText("+"); btnMas.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { btnMasMouseClicked(evt); } }); getContentPane().add(btnMas, new org.netbeans.lib.awtextra.AbsoluteConst raints(190, 130, 60, 100)); btnMenos.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N btnMenos.setText("-"); btnMenos.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { btnMenosMouseClicked(evt); } }); getContentPane().add(btnMenos, new org.netbeans.lib.awtextra.AbsoluteCon straints(270, 130, 50, 50)); btnIgual.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N btnIgual.setText("="); btnIgual.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { btnIgualMouseClicked(evt); } }); btnIgual.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnIgualActionPerformed(evt); } }); getContentPane().add(btnIgual, new org.netbeans.lib.awtextra.AbsoluteCon straints(140, 230, 110, 50)); btnPor.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N btnPor.setText("*"); btnPor.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { btnPorMouseClicked(evt); } }); getContentPane().add(btnPor, new org.netbeans.lib.awtextra.AbsoluteConst raints(270, 80, 50, 50)); etiInfo.setEditable(false); etiInfo.setBackground(new java.awt.Color(204, 204, 255)); etiInfo.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N etiInfo.setHorizontalAlignment(javax.swing.JTextField.CENTER);

etiInfo.setBorder(javax.swing.BorderFactory.createLineBorder(new java.aw t.Color(0, 0, 0))); etiInfo.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { etiInfoActionPerformed(evt); } }); getContentPane().add(etiInfo, new org.netbeans.lib.awtextra.AbsoluteCons traints(190, 80, 60, 50)); btnReset.setText("C"); btnReset.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { btnResetMouseClicked(evt); } }); getContentPane().add(btnReset, new org.netbeans.lib.awtextra.AbsoluteCon straints(320, 230, 50, 50)); btnCambioSigno.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N btnCambioSigno.setText("+/-"); btnCambioSigno.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { btnCambioSignoMouseClicked(evt); } }); getContentPane().add(btnCambioSigno, new org.netbeans.lib.awtextra.Absol uteConstraints(320, 130, 50, 50)); panelFondo.setBackground(new java.awt.Color(255, 255, 204)); panelFondo.setBorder(new javax.swing.border.MatteBorder(null)); getContentPane().add(panelFondo, new org.netbeans.lib.awtextra.AbsoluteC onstraints(0, 0, 420, 320)); pack(); }// </editor-fold> private void pantallaActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void btnSieteMouseClicked(java.awt.event.MouseEvent evt) { resetPantalla(); pantalla.setText(pantalla.getText()+"7"); } private void btnOchoMouseClicked(java.awt.event.MouseEvent evt) { resetPantalla(); pantalla.setText(pantalla.getText()+"8"); } private void btnNueveMouseClicked(java.awt.event.MouseEvent evt) { resetPantalla(); pantalla.setText(pantalla.getText()+"9"); }

private void btnCuatroMouseClicked(java.awt.event.MouseEvent evt) { resetPantalla(); pantalla.setText(pantalla.getText()+"4"); } private void btnCincoMouseClicked(java.awt.event.MouseEvent evt) { resetPantalla(); pantalla.setText(pantalla.getText()+"5"); } private void btnSeisMouseClicked(java.awt.event.MouseEvent evt) { resetPantalla(); pantalla.setText(pantalla.getText()+"6"); } private void btnUnoMouseClicked(java.awt.event.MouseEvent evt) { resetPantalla(); pantalla.setText(pantalla.getText()+"1"); } private void btnDosMouseClicked(java.awt.event.MouseEvent evt) { resetPantalla(); pantalla.setText(pantalla.getText()+"2"); } private void btnTresMouseClicked(java.awt.event.MouseEvent evt) { resetPantalla(); pantalla.setText(pantalla.getText()+"3"); } private void btnCMouseClicked(java.awt.event.MouseEvent evt) { pantalla.setText("0"); if (etiInfo.getText().equals("ERROR")) etiInfo.setText(""); if (oper1Introducido) { oper2=new Double(0); } else oper1=new Double(0); } private void btnCero1MouseClicked(java.awt.event.MouseEvent evt) { resetPantalla(); if (!pantalla.getText().equals("0")) pantalla.setText(pantalla.getText()+"0"); } private void btnPuntoMouseClicked(java.awt.event.MouseEvent evt) { if (pantalla.getText().indexOf(".")<0 && !operadorPulsado) pantalla.setText(pantalla.getText()+"."); }

private void btnMasMouseClicked(java.awt.event.MouseEvent evt) { etiInfo.setText("+"); calcularAcumulado("+"); } private void btnIgualMouseClicked(java.awt.event.MouseEvent evt) { if (oper1Introducido && !igualPulsado && !pantalla.getText().equals(".")){ etiInfo.setText(""); igualPulsado=true; if (!operadorPulsado) realizarOperacion(); oper2=new Double(0); operadorPulsado=false; if (!pantalla.getText().equals("ERROR")) pantalla.setText(filtrarCifrasSinDecimales(oper1.toString())); } } private void btnResetMouseClicked(java.awt.event.MouseEvent evt) { resetEstado(); pantalla.setText("0"); etiInfo.setText(""); } private void btnPorMouseClicked(java.awt.event.MouseEvent evt) { etiInfo.setText("*"); calcularAcumulado("*"); } private void btnDivideMouseClicked(java.awt.event.MouseEvent evt) { etiInfo.setText("/"); calcularAcumulado("/"); } private void btnMenosMouseClicked(java.awt.event.MouseEvent evt) { etiInfo.setText("-"); calcularAcumulado("-"); } private void btnCambioSignoMouseClicked(java.awt.event.MouseEvent evt) { if (!pantalla.getText().equals("0") && !pantalla.getText().equals(".")) { String textoPantalla=pantalla.getText(); if (Double.parseDouble(textoPantalla)>0) pantalla.setText("-"+textoPantalla); else pantalla.setText(pantalla.getText().substring(1)); if (oper1Introducido && !introduciendoOperando) oper1*=-1; } }

private void btnIgualActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void etiInfoActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void btnCero1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void calcularAcumulado(String operador){ if (!operadorPulsado && !pantalla.getText().equals(".")) { introduciendoOperando=false; if (igualPulsado) { oper2=new Double(0); igualPulsado=false; } else if (!oper1Introducido) { oper1=Double.parseDouble(pantalla.getText()); oper1Introducido=true; } else { realizarOperacion(); igualPulsado=false; } pantalla.setText(filtrarCifrasSinDecimales(oper1.toString())); operadorPulsado=true; } operacion=operador; } private String filtrarCifrasSinDecimales (String numeroString) { StringTokenizer tokens = new StringTokenizer(numeroString,"."); String parteEntera=tokens.nextToken(); if (tokens.hasMoreTokens()) { String parteDecimal=tokens.nextToken(); if (parteDecimal.equals("0")) return parteEntera; } return numeroString; } private void resetEstado(){ oper1Introducido=false; igualPulsado=false; oper1=new Double(0) ; oper2=new Double(0); operacion=""; operadorPulsado=false; introduciendoOperando=false; } private void resetPantalla(){

if (pantalla.getText().equals("0") || operadorPulsado) { pantalla.setText(""); operadorPulsado=false; } if (igualPulsado || etiInfo.getText().equals("ERROR")){ oper1=new Double(0); oper2=new Double(0); oper1Introducido=false; igualPulsado=false; pantalla.setText(""); etiInfo.setText(""); operacion=""; } introduciendoOperando=true; } private void realizarOperacion(){ oper2=Double.parseDouble(pantalla.getText()); if (operacion.equals("+")) oper1+=oper2; else if (operacion.equals("-")) oper1-=oper2; else if (operacion.equals("*")) oper1*=oper2; else if (operacion.equals("/")) if (filtrarCifrasSinDecimales(oper2.toString()).equals("0")) { etiInfo.setText("ERROR"); resetEstado(); } else oper1/=oper2; } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new FrameCalculadora().setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton btnC; private javax.swing.JButton btnCambioSigno; private javax.swing.JButton btnCero1; private javax.swing.JButton btnCinco; private javax.swing.JButton btnCuatro; private javax.swing.JButton btnDivide; private javax.swing.JButton btnDos; private javax.swing.JButton btnIgual; private javax.swing.JButton btnMas; private javax.swing.JButton btnMenos; private javax.swing.JButton btnNueve; private javax.swing.JButton btnOcho; private javax.swing.JButton btnPor; private javax.swing.JButton btnPunto; private javax.swing.JButton btnReset; private javax.swing.JButton btnSeis; private javax.swing.JButton btnSiete1;

private javax.swing.JButton btnTres; private javax.swing.JButton btnUno; private javax.swing.JTextField etiInfo; private javax.swing.JPanel panelFondo; private javax.swing.JTextField pantalla; // End of variables declaration }

Das könnte Ihnen auch gefallen