Bueno aqui les traigo una pequeña calculadora cintifica que acabo de programar tiene algunas funciones basicas como el calculo de la raiz, el logaritmo natural, seno , coseno, tangente, entre otras pues que nada saludos a todos los lectores y espero y les sirva de mucho.

import javax.swing.*; import java.awt.event.MouseListener; import java.awt.*; import java.awt.event.*; import java.math.*; public class Calculadora extends JFrame implements ActionListener { String numero=""; public JButton boton1, boton2, boton3, boton4, boton5, boton6, boton7, boton8, boton9, boton0; public JButton igual, suma, resta, mult, div; public JButton loga, decimal, sqrt, seno, coseno, tangente, pi, potencia,factorial,ln,e; public JButton botonC,botonCA,btnsigno; public JButton porciento; private double displaytemp; boolean equalPressed,P_suma,P_resta,P_mult,P_div,P_potencia,P_porciento; public JTextField Cuadro; public JLabel jlbl_label; public Calculadora(){ super("Calculadora Cientifica"); this.DefinirVentana(); this.setResizable(false); this.setLocationRelativeTo(null); this.setSize(370,266); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } public void DefinirVentana(){ this.setLayout(new FlowLayout()); //boton7 boton7=new JButton("7"); boton7.setBackground(Color.black); boton7.setForeground(Color.green); boton7.setFont(new Font("Comic Sans MS", Font.BOLD, 17)); //boton8 boton8=new JButton("8"); boton8.setBackground(Color.black); boton8.setForeground(Color.green); boton8.setFont(new Font("Comic Sans MS", Font.BOLD, 17)); //boton9 boton9=new JButton("9"); boton9.setBackground(Color.black); boton9.setForeground(Color.green); boton9.setFont(new Font("Comic Sans MS", Font.BOLD, 17)); //Seno seno= new JButton("sin"); seno.setForeground(Color.RED); seno.setFont(new Font("Comic Sans MS",Font.BOLD,17)); //Coseno coseno= new JButton("cos"); coseno.setForeground(Color.RED); coseno.setFont(new Font("Comic Sans MS",Font.BOLD,17)); //Tangente tangente= new JButton("tan"); tangente.setForeground(Color.RED); tangente.setFont(new Font("Comic Sans MS",Font.BOLD,17)); //boton1 boton1=new JButton("1"); boton1.setBackground(Color.black); boton1.setForeground(Color.green); boton1.setFont(new Font("Comic Sans MS", Font.BOLD, 17)); boton1.addActionListener(this); //boton2 boton2=new JButton("2"); boton2.setBackground(Color.black); boton2.setForeground(Color.green); boton2.setFont(new Font("Comic Sans MS", Font.BOLD, 17)); //boton3 boton3=new JButton("3"); boton3.setBackground(Color.black); boton3.setForeground(Color.green); boton3.setFont(new Font("Comic Sans MS", Font.BOLD, 17)); //boton4 boton4=new JButton("4"); boton4.setBackground(Color.black); boton4.setForeground(Color.green); boton4.setFont(new Font("Comic Sans MS", Font.BOLD, 17)); //boton5 boton5=new JButton("5"); boton5.setBackground(Color.black); boton5.setForeground(Color.green); boton5.setFont(new Font("Comic Sans MS", Font.BOLD, 17)); //botn6 boton6=new JButton("6"); boton6.setBackground(Color.black); boton6.setForeground(Color.green); boton6.setFont(new Font("Comic Sans MS", Font.BOLD, 17)); //boton 0 boton0=new JButton("0"); boton0.setBackground(Color.black); boton0.setForeground(Color.green); boton0.setFont(new Font("Comic Sans MS", Font.BOLD, 17)); //boton C botonC= new JButton("C"); botonC.setBackground(Color.black); botonC.setForeground(Color.green); botonC.setFont(new Font("Comic Sans MS", Font.BOLD, 17)); //botonCA botonCA=new JButton("CA"); botonCA.setBackground(Color.black); botonCA.setForeground(Color.green); botonCA.setFont(new Font("Comic Sans MS", Font.BOLD, 17)); //boton signo btnsigno= new JButton("+/-"); btnsigno.setBackground(Color.black); btnsigno.setForeground(Color.green); btnsigno.setFont(new Font("Comic Sans MS", Font.BOLD, 17)); //porciento porciento= new JButton("%"); porciento.setBackground(Color.red); porciento.setForeground(Color.white); porciento.setFont(new Font("Comic Sans MS", Font.BOLD, 17)); //Decimal decimal= new JButton("."); decimal.setBackground(Color.black); decimal.setForeground(Color.green); decimal.setFont(new Font("Comic Sans MS", Font.BOLD, 17)); //Igual igual= new JButton("="); igual.setBackground(Color.red); igual.setForeground(Color.white); igual.setFont(new Font("Comic Sans MS", Font.BOLD, 17)); //Suma suma= new JButton("+"); suma.setBackground(Color.red); suma.setForeground(Color.white); suma.setFont(new Font("MS Reference Sans Serif", Font.BOLD, 17)); //Resta resta= new JButton("-"); resta.setBackground(Color.red); resta.setForeground(Color.white); resta.setFont(new Font("MS Reference Sans Serif", Font.BOLD, 17)); //Multiplicacion mult= new JButton("*"); mult.setBackground(Color.red); mult.setForeground(Color.white); mult.setFont(new Font("Comic Sans MS", Font.BOLD, 17)); //Divicion div= new JButton("/"); div.setBackground(Color.red); div.setForeground(Color.white); div.setFont(new Font("Comic Sans MS", Font.BOLD, 17)); //Logaritmo loga= new JButton("log"); loga.setForeground(new Color(10,180,100)); loga.setFont(new Font("Comic Sans MS", Font.BOLD,17)); //Raiz sqrt= new JButton("sqrt"); sqrt.setForeground(new Color(10,180,100)); sqrt.setFont(new Font("Comic Sans MS",Font.BOLD,17)); //Pi pi= new JButton("pi"); pi.setForeground(new Color(11,15,166)); pi.setFont(new Font("Comic Sans MS",Font.BOLD,17)); //Potencia potencia= new JButton("x^y"); potencia.setForeground(new Color(190,18,10)); potencia.setFont(new Font("Comic Sans MS",Font.BOLD,17)); //Factorial factorial= new JButton("n!"); factorial.setForeground(new Color(190,18,10)); factorial.setFont(new Font("Comic Sans MS",Font.BOLD,17)); // ln= new JButton("ln"); ln.setForeground(new Color(10,180,100)); ln.setFont(new Font("Comic Sans MS", Font.BOLD,17)); //e e= new JButton("e"); e.setForeground(new Color(15,33,193)); e.setFont(new Font("Arial Black",Font.BOLD,17)); //Cuadro texto Cuadro=new JTextField(19); Cuadro.setEditable(true); //Cuadro.setHorizontalAlignment( JTextField.RIGHT ); Cuadro.setRequestFocusEnabled(false); Cuadro.setFont(new Font("Verdana", Font.BOLD, 17)); Cuadro.setForeground(Color.BLUE); Cuadro.setBounds(220,60,332,22); jlbl_label=new JLabel(); this.add(Cuadro); this.add(boton7); boton7.addActionListener(this); this.add(boton8); boton8.addActionListener(this); this.add(boton9); boton9.addActionListener(this); this.add(seno); seno.addActionListener(this); this.add(coseno); coseno.addActionListener(this); this.add(tangente); tangente.addActionListener(this); this.add(boton4); boton4.addActionListener(this); this.add(boton5); boton5.addActionListener(this); this.add(boton6); boton6.addActionListener(this); this.add(loga); loga.addActionListener(this); this.add(sqrt); sqrt.addActionListener(this); this.add(ln); ln.addActionListener(this); this.add(boton1); this.add(boton2); boton2.addActionListener(this); this.add(boton3); boton3.addActionListener(this); this.add(factorial); factorial.addActionListener(this); this.add(e); e.addActionListener(this); this.add(potencia); potencia.addActionListener(this); this.add(boton0); boton0.addActionListener(this); this.add(decimal); decimal.addActionListener(this); this.add(btnsigno); btnsigno.addActionListener(this); this.add(suma); suma.addActionListener(this); this.add(resta); resta.addActionListener(this); this.add(porciento); porciento.addActionListener(this); this.add(botonC); botonC.addActionListener(this); this.add(botonCA); botonCA.addActionListener(this); this.add(pi); pi.addActionListener(this); this.add(mult); mult.addActionListener(this); this.add(div); div.addActionListener(this); this.add(igual); igual.addActionListener(this); this.add(jlbl_label); } public String factorial(double num) { int Numero = (int)num; if (Numero < 1) { JOptionPane.showMessageDialog(Calculadora.this,"No es posible encontrar el factorial de un numero negativo","Error de factorial",JOptionPane.WARNING_MESSAGE); return ("0"); } else { for (int i=(Numero -1); i > 1; --i) Numero *= i; return Integer.toString(Numero); } } public void resetAllButton() { P_suma = false; P_resta = false; P_mult = false; P_div = false; P_potencia= false; P_porciento=false; } public void actionPerformed(ActionEvent e){ String numero=e.getActionCommand(); boolean P_decimal = false; String temptext = Cuadro.getText(); double display=0; try { display = Double.valueOf(Cuadro.getText()).doubleValue(); } catch(NumberFormatException nfe) {} if(equalPressed) { Cuadro.setText(""); equalPressed = false; } if(numero.equals("1")) Cuadro.setText(Cuadro.getText()+"1"); if(numero.equals("2")) Cuadro.setText(Cuadro.getText()+"2"); if(numero.equals("3")) Cuadro.setText(Cuadro.getText()+"3"); if(numero.equals("4")) Cuadro.setText(Cuadro.getText()+"4"); if(numero.equals("5")) Cuadro.setText(Cuadro.getText()+"5"); if(numero.equals("6")) Cuadro.setText(Cuadro.getText()+"6"); if(numero.equals("7")) Cuadro.setText(Cuadro.getText()+"7"); if(numero.equals("8")) Cuadro.setText(Cuadro.getText()+"8"); if(numero.equals("9")) Cuadro.setText(Cuadro.getText()+"9"); if(numero.equals("0")) Cuadro.setText(Cuadro.getText()+"0"); if(numero.equals("e")) Cuadro.setText(Double.toString(Math.E)); if(numero.equals("pi")) Cuadro.setText(Double.toString(Math.PI)); if(numero.equals("C")) Cuadro.setText(""); if(numero.equals("CA")) { resetAllButton(); Cuadro.setText(""); } if(numero.equals(".")) { for (int i =0; i < temptext.length(); ++i) { if(temptext.charAt(i) == '.') { P_decimal = true; continue; } } if(!P_decimal && temptext.length()==0) Cuadro.setText("0."); if(!P_decimal && temptext.length()!=0) Cuadro.setText(Cuadro.getText()+"."); } if(numero.equals("sin")) { //sistema sexagesimal Cuadro.setText(Double.toString(Math.sin((display*Math.PI)/180))); //por radianes{ //Cuadro.setText(Double.toString(Math.sin(display))); } if(numero.equals("cos")) { //sistema sexagesimal Cuadro.setText(Double.toString(Math.cos((display*Math.PI)/180))); //por radianes // Cuadro.setText(Double.toString(Math.cos(display))); } if(numero.equals("tan")) { //sistema sexagesimal Cuadro.setText(Double.toString(Math.tan((display*Math.PI)/180))); //por radianes //Cuadro.setText(Double.toString(Math.tan(display))); } if(numero.equals("*")) { resetAllButton(); P_mult = true; try { displaytemp = display; } catch(NumberFormatException mule) { displaytemp = 0; } Cuadro.setText(""); } if(numero.equals("+")) { resetAllButton(); P_suma = true; try { displaytemp = display; } catch(NumberFormatException pluse) { displaytemp = 0; } Cuadro.setText(""); } if(numero.equals("-")) { resetAllButton(); P_resta = true; try { displaytemp = display; } catch(NumberFormatException sube) { displaytemp = 0; } Cuadro.setText(""); } if(numero.equals("/")) { resetAllButton(); P_div = true; try { displaytemp = display; } catch(NumberFormatException dive) { displaytemp = 0; } Cuadro.setText(""); } if(numero.equals("x^y")) { P_potencia = true; try { displaytemp = display; } catch(NumberFormatException dive) { displaytemp = 0; } Cuadro.setText(""); } if(numero.equals("%")) { P_porciento= true; try { displaytemp = display; } catch(NumberFormatException dive) { displaytemp = 0; } Cuadro.setText(""); } if(numero.equals("=")) { if(P_mult) Cuadro.setText(Double.toString(displaytemp*display)); if(P_suma) Cuadro.setText(Double.toString(displaytemp+display)); if(P_resta) Cuadro.setText(Double.toString(displaytemp-display)); if(P_div) { if(display!=0) Cuadro.setText(Double.toString(displaytemp/display)); else JOptionPane.showMessageDialog(Calculadora.this,"No es posible dividir entre cero","Error:Divicion por cero.",JOptionPane.WARNING_MESSAGE); } if(P_potencia) Cuadro.setText(Double.toString(Math.pow(displaytemp,display))); if(P_porciento) {double resp=0; resp=displaytemp/100; Cuadro.setText(Double.toString(display*resp)); } resetAllButton(); equalPressed = true; } if(numero.equals("+/-") && display!=0) Cuadro.setText(Double.toString(-display)); if(numero.equals("n!")) Cuadro.setText(factorial(display)); if(numero.equals("sqrt")){ if(display>0) Cuadro.setText(Double.toString(Math.sqrt(display))); else JOptionPane.showMessageDialog(Calculadora.this,"No es posible encontrar la raíz de un numero negativo","Error:Calculo Raíz.",JOptionPane.WARNING_MESSAGE); } if(numero.equals("ln")) { if(display>0) Cuadro.setText(Double.toString(Math.log(display))); else JOptionPane.showMessageDialog(Calculadora.this,"Logaritmo natural de un numero negativo","Error:Logaritmo Natural.",JOptionPane.WARNING_MESSAGE); } if(numero.equals("log")) { if(display>0) Cuadro.setText(Double.toString(Math.log10(display))); else JOptionPane.showMessageDialog(Calculadora.this,"No es posible encontrar el logaritmo de un numero negativo","Error:Logaritmo.",JOptionPane.WARNING_MESSAGE); } } public static void main(String args[]){ new Calculadora(); } }

les dejo el link de descarga del codigo para que no esten copiando y pues saludos http://www.mediafire.com/?3fb14om4sea44x4 Espero y les sirva y pues comentar no cuesta nada