/**
 *Criado pelo prof. André Aparecido da Silva para as aulas 22a 24 
 *do Curso Tecnico em Informática do Colégio Estadual do Paraná 
 *
 */
import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
import java.awt.event.*;


public class Equacao2GrauB extends JFrame implements ActionListener
{
		JButton bt_Calcular, bt_Limpar, bt_Sair;
		JLabel lbl_Valorx1, lbl_Valorx2, lbl_Delta,  lbl_Mensagem; 
		JTextField tf_ValorA, tf_ValorB, tf_ValorC, tf_ValorX1,  tf_ValorX2, tf_Mensagem; 
		JTextField tf_Delta;	
		JPanel Painel1, Painel2, Painel3, Painel4, Painel5,  Painel6,  Painel7, Painel8;
		JPanel PainelDelta, PainelDeltaA, PainelDeltaB; 	
		JPanel Painel2A, Painel2B;
		JPanel Painel3A, Painel3B;
		JPanel Painel4A, Painel4B;
		JPanel Painel5A, Painel5B;
		JPanel Painel6A, Painel6B;
		JPanel Painel7A, Painel7B;		
    	public Equacao2GrauB() 
    	{
    			getContentPane().setLayout(new GridLayout(9, 1));
    			getContentPane().add(Painel1 = new JPanel ());
    			Painel1.add(new JLabel("CALCULA EQUAÇÕES DO 2° GRAU"));
   				/////////////////////////////////////////
    			getContentPane().add(Painel2 = new JPanel (new GridLayout(1, 2)));
    			Painel2.add(Painel2A = new JPanel(new FlowLayout(FlowLayout.RIGHT)));
    			Painel2.add(Painel2B = new JPanel(new FlowLayout(FlowLayout.LEFT)));
    			Painel2A.add(new JLabel ("VALOR DE A:"));
    			Painel2B.add(tf_ValorA = new JTextField(15));
                ///////////////////////////////////////
   			    getContentPane().add(Painel3 = new JPanel (new GridLayout(1, 2)));
   			    Painel3.add(Painel3A = new JPanel(new FlowLayout(FlowLayout.RIGHT)));
    			Painel3.add(Painel3B = new JPanel(new FlowLayout(FlowLayout.LEFT)));
    			Painel3A.add(new JLabel ("VALOR DE B:"));
    			Painel3B.add(tf_ValorB = new JTextField(15));                  
    			/////////////////////////////////////////////
				getContentPane().add(Painel4 = new JPanel (new GridLayout(1, 2)));
   			    Painel4.add(Painel4A = new JPanel(new FlowLayout(FlowLayout.RIGHT)));
   			    Painel4.add(Painel4B = new JPanel(new FlowLayout(FlowLayout.LEFT)));
    			Painel4A.add(new JLabel ("VALOR DE C:"));
    			Painel4B.add(tf_ValorC = new JTextField(15));
    			////////////////////////////////////////////////
    			    			
    			getContentPane().add(PainelDelta = new JPanel (new GridLayout(1, 2)));
    			PainelDelta.add(PainelDeltaA = new JPanel(new FlowLayout(FlowLayout.RIGHT)));
    			PainelDeltaA.setBackground(Color.orange);
    			PainelDeltaA.add(new JLabel("Valor do Delta:"));
    			PainelDelta.add(PainelDeltaB = new JPanel(new FlowLayout(FlowLayout.LEFT)));
    			PainelDeltaB.add(tf_Delta = new JTextField(15));
    			PainelDeltaB.setBackground(Color.orange);
    			tf_Delta.setEditable(false);	
    			////////////////////////////////////////////////	
				getContentPane().add(Painel5 = new JPanel (new GridLayout(1, 2)));
   			    Painel5.add(Painel5A = new JPanel(new FlowLayout(FlowLayout.RIGHT)));
   			    Painel5A.add(new JLabel("VALOR DE X':"));
   			    Painel5.add(Painel5B = new JPanel(new FlowLayout(FlowLayout.LEFT)));				
				Painel5B.add(tf_ValorX1 = new JTextField(15));
				tf_ValorX1.setEditable(false);
				tf_ValorX1.setText("Resultado de x'");
				////////////////////////////////////////////////
				getContentPane().add(Painel6 = new JPanel (new GridLayout(1, 2)));
   			    Painel6.add(Painel6A = new JPanel(new FlowLayout(FlowLayout.RIGHT)));
   			    Painel6A.add(new JLabel("VALOR DE X'':"));
   			    Painel6.add(Painel6B = new JPanel(new FlowLayout(FlowLayout.LEFT)));
   			    Painel6B.add(tf_ValorX2 = new JTextField(15));
   			    tf_ValorX2.setText("Resultado de x''");
				tf_ValorX2.setEditable(false);
				
				
				/////////////////////////////////////////////
				getContentPane().add(Painel7 = new JPanel (new FlowLayout(FlowLayout.RIGHT)));				
				Painel7.add(new JLabel("MENSAGEM:"));				
				Painel7.add(tf_Mensagem = new JTextField(23));
				tf_Mensagem.setText("Aguardando valores");
				tf_Mensagem.setEditable(false);
    			//////////////////////////////////
    			getContentPane().add(Painel8 = new JPanel (new FlowLayout(FlowLayout.CENTER)));
    			Painel8.add(bt_Calcular = new JButton ("CALCULAR"));
    			Painel8.add(bt_Limpar  = new JButton ("LIMPAR")); 
    			Painel8.add(bt_Sair  = new JButton ("SAIR DO SISTEMA"));
    			bt_Calcular.addActionListener(this);
    			bt_Limpar.addActionListener(this); 
    			bt_Sair.addActionListener(this);    			
    			pack();
    			setResizable(false);
    			setVisible(true);	
    	}
    	public void actionPerformed(ActionEvent e)
    	{
    		////////////////////////////////////
    		if(e.getSource()==bt_Limpar)
    		{
    			tf_ValorA.setText(""); 
    			tf_ValorB.setText("");
    			tf_ValorC.setText("");
    			tf_Delta.setText("");
    			tf_ValorX1.setText("Resultado de x'");
    			tf_ValorX2.setText("Resultado de x''");
    			tf_Mensagem.setText("Aguardando valores");
    		}		
    		////////////////////////////////////    		
    		if(e.getSource()==bt_Sair)
    		{
    			System.exit(0);
    		}
    		////////////////////////////////////
			if(e.getSource()==bt_Calcular)
    		{
    			if(tf_ValorA.getText().equals(""))
    			{
    					tf_Mensagem.setText("Você precisa digitar um valor valido em A");
    					JOptionPane.showMessageDialog(null, "Você precisa digitar um valor valido em A");

    			}
 
 				else if(tf_ValorA.getText().equals("0"))
    			{
    					tf_Mensagem.setText("O Valor de  A nao pode ser 0");
    					JOptionPane.showMessageDialog(null, "O valor de A não pode ser 0");
    			}  
    			else
    			{
    					double A, B, C;
    					A = Double.parseDouble(tf_ValorA.getText());
    					////////////////////////////
    					if(tf_ValorB.getText().equals(""))
    						{B = 0;}
    					else
    						{B =  Double.parseDouble(tf_ValorB.getText());}	
    					////////////////////////////		
    					if(tf_ValorC.getText().equals(""))
    						{C = 0;}    						
    					else
    						{C = Double.parseDouble(tf_ValorC.getText());}
    					////////////////////////////
    					double Delta = (Math.pow(B, 2 ) - 4 * A *C);
    					tf_Delta.setText(""+Delta);
    					if(Delta < 0)
    							{tf_Mensagem.setText("DELTA NEGATIVO, NÃO HÁ RAIZES REAIS");}	
    					else
    					{
    						double Valor_X1 =((-B) + (Math.sqrt(Delta))) / (2*A);
    						tf_ValorX1.setText(""+Valor_X1);
    						double Valor_X2 =((-B) - Math.sqrt(Delta)) / (2*A);
    						tf_ValorX2.setText(""+Valor_X2);
    						tf_Mensagem.setText("Cálculos realizados com sucesso!!!");	
    					}		
    				
    			}		 				
    			
    		}
	
    	}	
    	public static void main(String args [])
    	{
    			new Equacao2GrauB();
    	}	
    
    
}