Sunteți pe pagina 1din 5

calculadora en netbeans package calculadora; import import import import java.awt.*; java.awt.event.

*; //importamos las clases que necesitamos javax.swing.*; javax.swing.border.TitledBorder;

public class MarcoCalculadora extends JFrame { public MarcoCalculadora() { super("Calculadora"); setSize(200, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Calculadora asis = new Calculadora(); add(asis); setResizable(false); setVisible(true); } public static void main(String[] arguments) { MarcoCalculadora calculadora = new MarcoCalculadora(); } } class Calculadora extends JPanel implements ActionListener{ //creamos las variables de clase que necesitamos para guardar //los valores double num1,num2,memo,total; char oper; //creamos los botones que van formar parte de nuestro marco o ventana //de la calculadora //botones de operaciones JLabel lb1=new JLabel("Digite aqu los numeros: "); JLabel lb2=new JLabel(""); JTextField txt1=new JTextField("",15); JButton sum=new JButton("+"); JButton res=new JButton("-"); JButton mul=new JButton("*"); JButton div=new JButton("/"); JButton igual=new JButton("="); JButton borrarActual=new JButton("CE"); JButton borrar=new JButton("C"); JButton mod=new JButton("%"); //los botones con los numeros JButton punto=new JButton("."); JButton n0=new JButton("0"); JButton n1=new JButton("1"); JButton n2=new JButton("2"); JButton n3=new JButton("3"); JButton n4=new JButton("4"); JButton n5=new JButton("5"); JButton n6=new JButton("6"); JButton n7=new JButton("7"); JButton n8=new JButton("8"); JButton n9=new JButton("9");

public Calculadora() { //constructor de la clase Calculadora //creamos un panel para mostrar la etiqueta con el campo de //introduccin de texto JPanel p1=new JPanel(); p1.add(lb1); p1.add(txt1); //creamos otro panel para mostrar los botones de las operaciones JPanel p2=new JPanel(); p2.setBorder(BorderFactory.createTitledBorder(null, "Operaciones", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, new Font("Dialog",Font.BOLD, 12), new Color(51, 51, 51))); p2.add(sum); p2.add(res); p2.add(mul); p2.add(div); p2.add(igual); //agregamos el evento ActionListener a cada uno de los botones //en este caso el evento es el de presionar un botn sum.addActionListener(this); res.addActionListener(this); mul.addActionListener(this); div.addActionListener(this); igual.addActionListener(this); //creamos otro panel para mostrar los botones de los numeros y //los botones de borrar JPanel p3=new JPanel(); p3.setLayout(new GridLayout(5,3)); p3.add(lb2); p3.add(borrar); p3.add(borrarActual); p3.add(n7); p3.add(n8); p3.add(n9); p3.add(n4); p3.add(n5); p3.add(n6); p3.add(n1); p3.add(n2); p3.add(n3); p3.add(punto); p3.add(n0); p3.add(mod); //agregamos el evento ActionListener a cada uno de los botones n7.addActionListener(this); n8.addActionListener(this); n9.addActionListener(this); n4.addActionListener(this); n5.addActionListener(this); n6.addActionListener(this); n1.addActionListener(this); n2.addActionListener(this); n3.addActionListener(this); punto.addActionListener(this); n0.addActionListener(this); borrarActual.addActionListener(this); borrar.addActionListener(this);

mod.addActionListener(this); //creamos el gestor de diseo que nos permitira ordenar los paneles //en este caso use el gestor de diseo GridLayout que me muestra los //paneles en forma de filas y columnas GridLayout grid=new GridLayout(3,1,5,5); setLayout(grid); add(p1); add(p3); add(p2); } //metodo de la Interface ActionListener que nos permite //manejar el evento de presionar un botn public void actionPerformed(ActionEvent evt) { try{ //creamos un objeto que nos permite manejar este evento //le agregamos a la variable el metodo getSource //que significa que esta va a manejar dicho evento Object fuente = evt.getSource(); String datos=txt1.getText();//esta variable recupera lo del JTextField //validamos el botn que el usuario presiono if (fuente == n0) { txt1.setText(""); txt1.setText(""+datos+n0.getText()); } else if (fuente == n1) { txt1.setText(""); txt1.setText(""+datos+n1.getText()); }else if (fuente == n2) { txt1.setText(""); txt1.setText(""+datos+n2.getText()); }else if (fuente == n3) { txt1.setText(""); txt1.setText(""+datos+n3.getText()); }else if (fuente == n4) { txt1.setText(""); txt1.setText(""+datos+n4.getText()); }else if (fuente == n5) { txt1.setText(""); txt1.setText(""+datos+n5.getText()); }else if (fuente == n6) { txt1.setText(""); txt1.setText(""+datos+n6.getText()); }else if (fuente == n7) { txt1.setText(""); txt1.setText(""+datos+n7.getText()); }else if (fuente == n8) { txt1.setText(""); txt1.setText(""+datos+n8.getText()); }else if (fuente == n9) { txt1.setText(""); txt1.setText(""+datos+n9.getText()); }else if (fuente == punto) { txt1.setText(""); txt1.setText(""+datos+punto.getText()); } //validamos segn la operacin seleccionada if(fuente==sum){ //convertir el primer nmero ingresado a un double num1=Double.parseDouble(txt1.getText());

memo=num1; oper='+'; txt1.setText(""); txt1.requestFocus(); }else if(fuente==res){ num1=Double.parseDouble(txt1.getText()); memo=num1; oper='-'; txt1.setText(""); txt1.requestFocus(); }else if(fuente==mul){ num1=Double.parseDouble(txt1.getText()); memo=num1; oper='*'; txt1.setText(""); txt1.requestFocus(); }else if(fuente==div){ num1=Double.parseDouble(txt1.getText()); memo=num1; oper='/'; txt1.setText(""); txt1.requestFocus(); }else if(fuente==mod){ num1=Double.parseDouble(txt1.getText()); memo=num1; oper='%'; txt1.setText(""); txt1.requestFocus(); } //mostramos en el JTextField segn la operacin realizada if (fuente==igual){ //convertir el segundo nmero ingresado un double num2=Double.parseDouble(txt1.getText()); //segn la operacin mostrar el resultado if (oper=='+'){ total=num1+num2; txt1.setText(""+total); }else if(oper=='-'){ total=num1-num2; txt1.setText(""+total); }else if(oper=='*'){ total=num1*num2; txt1.setText(""+total); }else if(oper=='/'){ total=num1/num2; txt1.setText(""+total); }else if(oper=='%') total=num1 % num2; txt1.setText(""+total); } //mostramos el primer valor digitado if(fuente==borrarActual){ num2=0; txt1.setText(""+memo); } //borramos todos lo valores if(fuente==borrar){ num1=0;

num2=0; memo=0; txt1.setText(""); txt1.requestFocus(); } repaint(); } catch (NumberFormatException nfe) { //Aadimos una excepcin por si introducimos letras //o si se realiza divisin por cero txt1.setText("0"); } } }

S-ar putea să vă placă și