Advertisement
LightProgrammer000

Calculadora Fatorial

May 18th, 2020
1,508
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.65 KB | None | 0 0
  1. package Aula_16;
  2.  
  3. import java.awt.Color;
  4.  
  5. public class A extends javax.swing.JFrame
  6. {
  7.     public A()
  8.     {
  9.         initComponents();
  10.         config();
  11.     }
  12.  
  13.     @SuppressWarnings("unchecked")
  14.     // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
  15.     private void initComponents() {
  16.  
  17.         pan = new javax.swing.JPanel();
  18.         sld = new javax.swing.JSlider();
  19.         lblNum = new javax.swing.JLabel();
  20.         lblFat = new javax.swing.JLabel();
  21.         lblRes = new javax.swing.JLabel();
  22.  
  23.         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  24.  
  25.         pan.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Fatorial", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Agency FB", 0, 24), new java.awt.Color(0, 51, 0))); // NOI18N
  26.  
  27.         sld.setMaximum(12);
  28.         sld.setValue(0);
  29.         sld.addChangeListener(new javax.swing.event.ChangeListener() {
  30.             public void stateChanged(javax.swing.event.ChangeEvent evt) {
  31.                 sldStateChanged(evt);
  32.             }
  33.         });
  34.  
  35.         lblNum.setFont(new java.awt.Font("Agency FB", 0, 24)); // NOI18N
  36.         lblNum.setForeground(new java.awt.Color(102, 204, 0));
  37.         lblNum.setText("0");
  38.  
  39.         lblFat.setFont(new java.awt.Font("Agency FB", 0, 24)); // NOI18N
  40.         lblFat.setForeground(new java.awt.Color(0, 0, 204));
  41.         lblFat.setText("Linha");
  42.  
  43.         lblRes.setFont(new java.awt.Font("Agency FB", 0, 24)); // NOI18N
  44.         lblRes.setForeground(new java.awt.Color(255, 0, 0));
  45.         lblRes.setText("Resultado");
  46.  
  47.         javax.swing.GroupLayout panLayout = new javax.swing.GroupLayout(pan);
  48.         pan.setLayout(panLayout);
  49.         panLayout.setHorizontalGroup(
  50.             panLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  51.             .addGroup(panLayout.createSequentialGroup()
  52.                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  53.                 .addGroup(panLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  54.                     .addComponent(lblRes, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
  55.                     .addComponent(lblFat, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  56.                     .addGroup(panLayout.createSequentialGroup()
  57.                         .addComponent(sld, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  58.                         .addGap(57, 57, 57)
  59.                         .addComponent(lblNum))))
  60.         );
  61.         panLayout.setVerticalGroup(
  62.             panLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  63.             .addGroup(panLayout.createSequentialGroup()
  64.                 .addContainerGap()
  65.                 .addGroup(panLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  66.                     .addComponent(sld, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  67.                     .addComponent(lblNum))
  68.                 .addGap(28, 28, 28)
  69.                 .addComponent(lblFat)
  70.                 .addGap(18, 18, 18)
  71.                 .addComponent(lblRes)
  72.                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  73.         );
  74.  
  75.         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  76.         getContentPane().setLayout(layout);
  77.         layout.setHorizontalGroup(
  78.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  79.             .addGroup(layout.createSequentialGroup()
  80.                 .addContainerGap()
  81.                 .addComponent(pan, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  82.                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  83.         );
  84.         layout.setVerticalGroup(
  85.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  86.             .addGroup(layout.createSequentialGroup()
  87.                 .addContainerGap()
  88.                 .addComponent(pan, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  89.                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  90.         );
  91.  
  92.         pack();
  93.     }// </editor-fold>                        
  94.  
  95.     // Método: Mudança em tempo real
  96.     private void sldStateChanged(javax.swing.event.ChangeEvent evt) {                                
  97.  
  98.         // Variáveis locais
  99.         int valor = sld.getValue();
  100.  
  101.         // Lable
  102.         lblNum.setText(Integer.toString(valor));
  103.         lblRes.setText(String.format("<html> <p> Fatorial: %d </html>", fatorial(valor)));
  104.         lblFat.setText(String.format("<html> <p> Linha: %s </html>", linha(valor)));
  105.     }                                
  106.  
  107.     public static void main(String args[])
  108.     {
  109.         try
  110.         {
  111.             for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels())
  112.             {
  113.                 if ("Nimbus".equals(info.getName()))
  114.                 {
  115.                     javax.swing.UIManager.setLookAndFeel(info.getClassName());
  116.                     break;
  117.                 }
  118.             }
  119.         }
  120.  
  121.         catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex)
  122.         {
  123.             java.util.logging.Logger.getLogger(A.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  124.         }
  125.  
  126.         java.awt.EventQueue.invokeLater(() -> {
  127.             new A().setVisible(true);
  128.         });
  129.     }
  130.  
  131.     // Variables declaration - do not modify                    
  132.     private javax.swing.JLabel lblFat;
  133.     private javax.swing.JLabel lblNum;
  134.     private javax.swing.JLabel lblRes;
  135.     private javax.swing.JPanel pan;
  136.     private javax.swing.JSlider sld;
  137.     // End of variables declaration                  
  138.  
  139.     // Método: Configurações
  140.     private void config()
  141.     {
  142.         // Frame
  143.         this.setAlwaysOnTop(true);
  144.         this.setLocationRelativeTo(this);
  145.         this.setResizable(false);
  146.         this.getContentPane().setBackground(Color.WHITE);
  147.        
  148.         // Painel
  149.         pan.setBackground(Color.WHITE);
  150.        
  151.         // Lable
  152.         lblNum.setText("0");
  153.         lblFat.setText("Valor");
  154.         lblRes.setText("Resultado");  
  155.     }
  156.    
  157.     // Método: Cálculo do fatorial
  158.     private int fatorial(int valor)
  159.     {
  160.         // Variáveis
  161.         int fat = 1;
  162.         String aux = " ";
  163.        
  164.         // Estrutura de repetição
  165.         for (int i = 1; i <= valor; i++)
  166.         {
  167.             fat *= i;
  168.         }
  169.  
  170.         return fat;
  171.     }
  172.  
  173.     // Método: Cálculo do fatorial em linha
  174.     private String linha(int valor)
  175.     {
  176.         // Variáveis
  177.         int fat = 1;
  178.         String aux = " ";
  179.  
  180.         // Estrutura de repetição
  181.         for (int i = 1; i <= valor; i++)
  182.         {
  183.             fat *= i;
  184.  
  185.             if (i != valor)
  186.             {
  187.                 aux += i + " * ";                
  188.             }
  189.  
  190.             else
  191.             {
  192.                 aux += i;                                                
  193.             }
  194.         }
  195.  
  196.         // Estrutura de decisão
  197.         if (!aux.equalsIgnoreCase(" "))
  198.         {
  199.             return aux;
  200.         }
  201.  
  202.         else
  203.         {
  204.             return "...";
  205.         }
  206.     }
  207. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement