Ecuacion de 2do grado

package Repaso;

 

import java.awt.GridLayout;

import javax.swing.*;

 

@SuppressWarnings("serial")

public class Ecuacion extends JFrame  {

               

                Double A;

                Double B;

                Double C;

               

                JLabel lblA, lblB, lblC, lblx1, lblx2, lblvA, lblvB, lblvC, lblvDet;

                JTextField txtA, txtB, txtC;

                JButton btnAceptar, btnCancelar;

               

                public Ecuacion() {

                               setTitle("Solucion");

                               setSize(250,200);

                               setDefaultCloseOperation(EXIT_ON_CLOSE);

                               setLocationRelativeTo(null);

                               dibujarInterfaz(); }

               

                public void dibujarInterfaz() {

                               getContentPane().setLayout(new GridLayout(7,2));

                              

                               lblA = new JLabel("Valor de A");

                               getContentPane().add(lblA);

                              

                               txtA = new JTextField();

                               getContentPane().add(txtA);

                              

                               lblB = new JLabel("Valor de B");

                               getContentPane().add(lblB);

                              

                               txtB = new JTextField();

                               getContentPane().add(txtB);

                              

                               lblC = new JLabel("Valor de C");

                               getContentPane().add(lblC);

                              

                               txtC = new JTextField();

                               getContentPane().add(txtC);

                              

                               lblx1 = new JLabel("X1 = ");

                               getContentPane().add(lblx1);

                              

                               lblx2 = new JLabel("X2 = ");

                               getContentPane().add(lblx2);

                              

                               lblvA = new JLabel("vA");

                               getContentPane().add(lblvA);

                              

                               lblvB = new JLabel("vB");

                               getContentPane().add(lblvB);

                              

                               lblvC = new JLabel("vC");

                               getContentPane().add(lblvC);

                              

                               lblvDet = new JLabel("vDet");

                               getContentPane().add(lblvDet);

                              

                               btnAceptar = new JButton("Resolver");

                               getContentPane().add(btnAceptar);

                              

                               btnCancelar = new JButton("Cancelar");

                               getContentPane().add(btnCancelar);

                              

                               btnCancelar.addActionListener(new java.awt.event.ActionListener() {

                                               public void actionPerformed(java.awt.event.ActionEvent evento){

                                                               System.exit(0);

                                               }

                               } );

                              

                               btnAceptar.addActionListener(new java.awt.event.ActionListener() {

                                               public void actionPerformed(java.awt.event.ActionEvent evento) {

                                                               String msj = " ";

                                                              

                                                               if(txtA.getText().isEmpty()) {

                                                                              msj += "Falta el valor de A\n";

                                                              

                                                               }

                                                              

                                                               if (txtB.getText().isEmpty()) {

                                                                              msj += "Falta el valor de B\n";

                                                               }

                                                              

                                                               if (txtC.getText().isEmpty()) {

                                                                              msj += "Falta el valor de C\n";

                                                               }

                                                              

                                                               A = Double.parseDouble(txtA.getText());

                                                               B = Double.parseDouble(txtB.getText());

                                                               C = Double.parseDouble(txtC.getText());

                                                              

                                                               lblvA.setText("A = " + txtA.getText());

                                                               lblvB.setText("B = " + txtB.getText());

                                                               lblvC.setText("C = " + txtC.getText());

                                                               lblvDet.setText("Det = " + determinante());

                                                              

                                                               if (msj.isEmpty()) {

                                                                              A = Double.parseDouble(txtA.getText());

                                                                              B = Double.parseDouble(txtB.getText());

                                                                              C = Double.parseDouble(txtC.getText());

                                                                              Double miSol[] = Solucion();

                                                                             

                                                                              if ( miSol[0] == 100.0) {

                                                                                              lblx1.setText("Sin solucion");

                                                                                              lblx2.setText("Sin solucion");                                                                                  

                                                                              }

                                                                             

                                                                              else {

                                                                                              lblx1.setText("X1 = " + miSol[0].toString());

                                                                                              lblx2.setText("X2 = " + miSol[1].toString());

                                                                                             

                                                                              }

                                                                             

                                                               }

                                                              

                                                               else {

                                                                              javax.swing.JOptionPane.showMessageDialog(null, msj);

                                                               }

                                                              

                                               }

                               });

                              

                              

                              

                }

               

                public Double determinante() {

                               return (B*B-4*A*C);

                }

               

                public Double[] Solucion() {

                               Double Sol[] = new Double[2];

                              

                               if (determinante() == 0) {

                                               Sol[0] = -B/2*A;

                                               Sol[1] = Sol[0];

                               }

                              

                               if (determinante() > 0) {

                                               Sol[0] = (-B + Math.sqrt(determinante()));

                                               Sol[0] = Sol[0]/(2*A);

                                               Sol[1] = (-B + Math.sqrt(determinante()));

                                               Sol[1] = Sol[1]/(2*A);

                               }

                              

                               if (determinante() < 0) {

                                               Sol[0] = 100.0;

                                               Sol[1] = Sol[0];

                               }

                              

                               return Sol;

                }

               

                public static void main(String args [])     {

                               new Ecuacion().setVisible(true);            

                }

 

}