Advertisement
LightProgrammer000

Calculadora (2º grau)

May 16th, 2020
2,019
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 13.96 KB | None | 0 0
  1. package Aula_12;
  2.  
  3. // Bibliotecas
  4. import java.awt.Color;
  5. import java.awt.Font;
  6.  
  7. public class A extends javax.swing.JFrame
  8. {
  9.     // Construtor
  10.     public A()
  11.     {
  12.         initComponents();
  13.         config();
  14.     }
  15.  
  16.     @SuppressWarnings("unchecked")
  17.     // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
  18.     private void initComponents() {
  19.  
  20.         pan1 = new javax.swing.JPanel();
  21.         jLabel1 = new javax.swing.JLabel();
  22.         jLabel2 = new javax.swing.JLabel();
  23.         jLabel3 = new javax.swing.JLabel();
  24.         jLabel4 = new javax.swing.JLabel();
  25.         jLabel5 = new javax.swing.JLabel();
  26.         jLabel6 = new javax.swing.JLabel();
  27.         lblTxt = new javax.swing.JLabel();
  28.         spn1 = new javax.swing.JSpinner();
  29.         spn2 = new javax.swing.JSpinner();
  30.         spn3 = new javax.swing.JSpinner();
  31.         btnCal = new javax.swing.JButton();
  32.         pan2 = new javax.swing.JPanel();
  33.         lblTipo = new javax.swing.JLabel();
  34.         lblDelta = new javax.swing.JLabel();
  35.  
  36.         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  37.  
  38.         pan1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Equação do 2º grau", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Agency FB", 0, 18), new java.awt.Color(0, 0, 153))); // NOI18N
  39.         pan1.setToolTipText("");
  40.  
  41.         jLabel1.setFont(new java.awt.Font("Agency FB", 0, 24)); // NOI18N
  42.         jLabel1.setText("X²");
  43.  
  44.         jLabel2.setFont(new java.awt.Font("Agency FB", 0, 24)); // NOI18N
  45.         jLabel2.setText("X");
  46.  
  47.         jLabel3.setFont(new java.awt.Font("Agency FB", 0, 24)); // NOI18N
  48.         jLabel3.setText("=");
  49.  
  50.         jLabel4.setFont(new java.awt.Font("Agency FB", 0, 36)); // NOI18N
  51.         jLabel4.setText("+");
  52.  
  53.         jLabel5.setFont(new java.awt.Font("Agency FB", 0, 36)); // NOI18N
  54.         jLabel5.setText("+");
  55.  
  56.         jLabel6.setFont(new java.awt.Font("Agency FB", 0, 24)); // NOI18N
  57.         jLabel6.setText("0");
  58.  
  59.         lblTxt.setText("Delta");
  60.  
  61.         spn1.setFont(new java.awt.Font("Agency FB", 0, 24)); // NOI18N
  62.  
  63.         spn2.setFont(new java.awt.Font("Agency FB", 0, 24)); // NOI18N
  64.  
  65.         spn3.setFont(new java.awt.Font("Agency FB", 0, 24)); // NOI18N
  66.  
  67.         btnCal.setFont(new java.awt.Font("Agency FB", 0, 24)); // NOI18N
  68.         btnCal.setForeground(new java.awt.Color(204, 0, 0));
  69.         btnCal.setText("Calcular Δ");
  70.         btnCal.addActionListener(new java.awt.event.ActionListener() {
  71.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  72.                 btnCalActionPerformed(evt);
  73.             }
  74.         });
  75.  
  76.         javax.swing.GroupLayout pan1Layout = new javax.swing.GroupLayout(pan1);
  77.         pan1.setLayout(pan1Layout);
  78.         pan1Layout.setHorizontalGroup(
  79.             pan1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  80.             .addGroup(pan1Layout.createSequentialGroup()
  81.                 .addGap(64, 64, 64)
  82.                 .addGroup(pan1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  83.                     .addGroup(pan1Layout.createSequentialGroup()
  84.                         .addComponent(spn1, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
  85.                         .addGap(18, 18, 18)
  86.                         .addComponent(jLabel1)
  87.                         .addGap(48, 48, 48)
  88.                         .addComponent(jLabel4)
  89.                         .addGap(58, 58, 58)
  90.                         .addComponent(spn2, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
  91.                         .addGap(18, 18, 18)
  92.                         .addComponent(jLabel2)
  93.                         .addGap(50, 50, 50)
  94.                         .addComponent(jLabel5)
  95.                         .addGap(49, 49, 49)
  96.                         .addComponent(spn3, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))
  97.                     .addComponent(lblTxt, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  98.                     .addComponent(btnCal, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  99.                 .addGap(39, 39, 39)
  100.                 .addComponent(jLabel3)
  101.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  102.                 .addComponent(jLabel6)
  103.                 .addGap(25, 25, 25))
  104.         );
  105.         pan1Layout.setVerticalGroup(
  106.             pan1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  107.             .addGroup(pan1Layout.createSequentialGroup()
  108.                 .addGap(27, 27, 27)
  109.                 .addGroup(pan1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  110.                     .addComponent(jLabel1)
  111.                     .addComponent(jLabel4)
  112.                     .addComponent(jLabel2)
  113.                     .addComponent(spn2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  114.                     .addComponent(spn3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  115.                     .addComponent(spn1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  116.                     .addComponent(jLabel5)
  117.                     .addComponent(jLabel3)
  118.                     .addComponent(jLabel6))
  119.                 .addGap(33, 33, 33)
  120.                 .addComponent(lblTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE)
  121.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  122.                 .addComponent(btnCal, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
  123.                 .addContainerGap(26, Short.MAX_VALUE))
  124.         );
  125.  
  126.         pan2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Resultado", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Agency FB", 0, 18), new java.awt.Color(255, 0, 0))); // NOI18N
  127.  
  128.         lblTipo.setText("jLabel7");
  129.  
  130.         lblDelta.setText("jLabel8");
  131.  
  132.         javax.swing.GroupLayout pan2Layout = new javax.swing.GroupLayout(pan2);
  133.         pan2.setLayout(pan2Layout);
  134.         pan2Layout.setHorizontalGroup(
  135.             pan2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  136.             .addGroup(pan2Layout.createSequentialGroup()
  137.                 .addContainerGap()
  138.                 .addGroup(pan2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  139.                     .addComponent(lblTipo, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  140.                     .addComponent(lblDelta, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  141.                 .addContainerGap())
  142.         );
  143.         pan2Layout.setVerticalGroup(
  144.             pan2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  145.             .addGroup(pan2Layout.createSequentialGroup()
  146.                 .addContainerGap()
  147.                 .addComponent(lblTipo)
  148.                 .addGap(18, 18, 18)
  149.                 .addComponent(lblDelta)
  150.                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  151.         );
  152.  
  153.         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  154.         getContentPane().setLayout(layout);
  155.         layout.setHorizontalGroup(
  156.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  157.             .addGroup(layout.createSequentialGroup()
  158.                 .addContainerGap()
  159.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  160.                     .addComponent(pan1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  161.                     .addComponent(pan2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  162.                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  163.         );
  164.         layout.setVerticalGroup(
  165.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  166.             .addGroup(layout.createSequentialGroup()
  167.                 .addContainerGap()
  168.                 .addComponent(pan1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  169.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  170.                 .addComponent(pan2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  171.                 .addContainerGap(36, Short.MAX_VALUE))
  172.         );
  173.  
  174.         pack();
  175.     }// </editor-fold>                        
  176.  
  177.     private void btnCalActionPerformed(java.awt.event.ActionEvent evt) {                                      
  178.  
  179.         try
  180.         {
  181.             // Entrada de dados
  182.             double a = Double.parseDouble(spn1.getValue().toString());
  183.             double b = Double.parseDouble(spn2.getValue().toString());
  184.             double c = Double.parseDouble(spn3.getValue().toString());
  185.  
  186.             // Cálculo
  187.             double delta = Math.pow(b, 2) - 4 * a * c;
  188.  
  189.             // Estilo da lable
  190.             lblTxt.setFont(new Font("Agency FB", Font.ROMAN_BASELINE, 25));
  191.             lblTipo.setFont(new Font("Agency FB", Font.ROMAN_BASELINE, 30));
  192.             lblDelta.setFont(new Font("Agency FB", Font.ROMAN_BASELINE, 30));
  193.  
  194.             // Lable
  195.             lblTxt.setText(String.format(
  196.             "<html>" +
  197.             "<p> Δ = <font color='red'> %.0f² </font> \n" +
  198.             " - 4 * <font color='red'> %.0f </font> * <font color='red'> %.0f </font> </p>" +
  199.             "</html>", b, a, c));
  200.  
  201.             // Painel
  202.             pan2.setVisible(true);
  203.             pan2.setBackground(Color.WHITE);
  204.  
  205.             // Estrutura de decisão
  206.             if (delta < 0)
  207.             {
  208.                 lblTipo.setText(String.format(
  209.                 "<html>" +
  210.                 "Tipo: <font color='red'> %s </font>" +
  211.                 "</html>", "Não existem raizes"));
  212.  
  213.                 lblDelta.setText(String.format(
  214.                 "<html>" +
  215.                 "Δ = <font color='red'> %.0f </font>" +
  216.                 "</html>", delta));
  217.             }
  218.  
  219.             else if (delta == 1)
  220.             {
  221.                 lblTipo.setText(String.format(
  222.                 "<html>" +
  223.                 "Tipo: <font color='blue'> %s </font>" +
  224.                 "</html>", "Existe somente 1 raiz"));
  225.  
  226.                 lblDelta.setText(String.format(
  227.                 "<html>" +
  228.                 "Δ = <font color='blue'> %.0f </font>" +
  229.                 "</html>", delta));
  230.             }
  231.  
  232.             else
  233.             {
  234.                 lblTipo.setText(String.format(
  235.                 "<html>" +
  236.                 "Tipo: <font color='green'> %s </font>" +
  237.                 "</html>", "Existem 2 raízes"));
  238.  
  239.                 lblDelta.setText(String.format(
  240.                 "<html>" +
  241.                 "Δ = <font color='green'> %.0f </font>" +
  242.                 "</html>", delta));
  243.             }
  244.         }
  245.  
  246.         catch(NumberFormatException e)
  247.         {
  248.             System.err.println(e);
  249.         }
  250.     }                                      
  251.  
  252.     public static void main(String args[])
  253.     {
  254.         try
  255.         {
  256.             for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels())
  257.             {
  258.                 if ("Nimbus".equals(info.getName()))
  259.                 {
  260.                     javax.swing.UIManager.setLookAndFeel(info.getClassName());
  261.                     break;
  262.                 }
  263.             }
  264.         }
  265.        
  266.         catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex)
  267.         {
  268.             java.util.logging.Logger.getLogger(A.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  269.         }
  270.  
  271.         java.awt.EventQueue.invokeLater(() -> {
  272.             new A().setVisible(true);
  273.         });
  274.     }
  275.    
  276.     // Variables declaration - do not modify                    
  277.     private javax.swing.JButton btnCal;
  278.     private javax.swing.JLabel jLabel1;
  279.     private javax.swing.JLabel jLabel2;
  280.     private javax.swing.JLabel jLabel3;
  281.     private javax.swing.JLabel jLabel4;
  282.     private javax.swing.JLabel jLabel5;
  283.     private javax.swing.JLabel jLabel6;
  284.     private javax.swing.JLabel lblDelta;
  285.     private javax.swing.JLabel lblTipo;
  286.     private javax.swing.JLabel lblTxt;
  287.     private javax.swing.JPanel pan1;
  288.     private javax.swing.JPanel pan2;
  289.     private javax.swing.JSpinner spn1;
  290.     private javax.swing.JSpinner spn2;
  291.     private javax.swing.JSpinner spn3;
  292.     // End of variables declaration                  
  293.  
  294.     // Método: Configurações
  295.     private void config()
  296.     {
  297.         // Frame
  298.         this.setTitle("Calculadora");
  299.         this.setLocationRelativeTo(this);
  300.         this.setResizable(false);
  301.         getContentPane().setBackground(Color.WHITE);
  302.  
  303.         // Lable
  304.         lblTxt.setFont(new Font("Agency FB", Font.ROMAN_BASELINE, 40));
  305.         lblTxt.setText(String.format
  306.         ("<html>" +
  307.          "<p> Δ = <font color='red'> %c² </font> \n" +
  308.          " - 4 * <font color='red'> %c </font> * <font color='red'> %c </font>\n" +
  309.          "</p>\n" +
  310.          "</html>",'B', 'A', 'C'));
  311.  
  312.         // Painel 1
  313.         pan1.setBackground(Color.WHITE);
  314.        
  315.         // Painel 2
  316.         pan2.setVisible(false);
  317.     }
  318. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement