Advertisement
Guest User

Untitled

a guest
Jan 26th, 2015
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 14.32 KB | None | 0 0
  1.  
  2. package finance.ui;
  3.  
  4. import finance.LoanPayment;
  5. import finance.ReportGenerator;
  6. import finance.TVMEngine;
  7. import finance.enums.CompoundingOption;
  8.  
  9. /**
  10.  *
  11.  * @author juan
  12.  */
  13. public class LoanPaymentForm extends javax.swing.JFrame
  14. {  
  15.     private TVMEngine calculator;
  16.     private ReportGenerator report;
  17.  
  18.     /**
  19.      * Creates new form LoanPaymentForm
  20.      */
  21.     public LoanPaymentForm() {
  22.         initComponents();
  23.        
  24.     }
  25.  
  26.     /**
  27.      * This method is called from within the constructor to initialize the form.
  28.      * WARNING: Do NOT modify this code. The content of this method is always
  29.      * regenerated by the Form Editor.
  30.      */
  31.     @SuppressWarnings("unchecked")
  32.     // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
  33.     private void initComponents()
  34.     {
  35.  
  36.         jLabel1 = new javax.swing.JLabel();
  37.         jLabel2 = new javax.swing.JLabel();
  38.         jLabel3 = new javax.swing.JLabel();
  39.         jLabel4 = new javax.swing.JLabel();
  40.         jLabel5 = new javax.swing.JLabel();
  41.         jLabel6 = new javax.swing.JLabel();
  42.         pmtLabel = new javax.swing.JLabel();
  43.         purchaseAmtTextField = new javax.swing.JTextField();
  44.         downPmtTextField = new javax.swing.JTextField();
  45.         CompoundingcBox = new javax.swing.JComboBox();
  46.         durationTextField = new javax.swing.JTextField();
  47.         aprTextField = new javax.swing.JTextField();
  48.         pmtTextField = new javax.swing.JTextField();
  49.         calculateButton = new javax.swing.JButton();
  50.         exitButton = new javax.swing.JButton();
  51.         labelLoanAmount = new javax.swing.JLabel();
  52.         loanAmtTextField = new javax.swing.JTextField();
  53.  
  54.         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  55.         setTitle("Payment Calculator");
  56.  
  57.         jLabel1.setFont(new java.awt.Font("Lucida Grande", 3, 14)); // NOI18N
  58.         jLabel1.setText("Loan Payment Calculator");
  59.  
  60.         jLabel2.setText("Purchase Amount");
  61.  
  62.         jLabel3.setText("Down Payment");
  63.  
  64.         jLabel4.setText("APR");
  65.  
  66.         jLabel5.setText("Loan Duration");
  67.  
  68.         jLabel6.setText("Compounding");
  69.  
  70.         pmtLabel.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
  71.         pmtLabel.setText("Annual Payment ");
  72.  
  73.         purchaseAmtTextField.setHorizontalAlignment(javax.swing.JTextField.TRAILING);
  74.  
  75.         downPmtTextField.setHorizontalAlignment(javax.swing.JTextField.TRAILING);
  76.  
  77.         CompoundingcBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Annual", "Semiannual", "Quarterly", "Monthly", "Weekly" }));
  78.  
  79.         durationTextField.setHorizontalAlignment(javax.swing.JTextField.TRAILING);
  80.  
  81.         aprTextField.setHorizontalAlignment(javax.swing.JTextField.TRAILING);
  82.  
  83.         pmtTextField.setEditable(false);
  84.         pmtTextField.setBackground(new java.awt.Color(102, 255, 204));
  85.         pmtTextField.setHorizontalAlignment(javax.swing.JTextField.TRAILING);
  86.  
  87.         calculateButton.setText("Calculate");
  88.         calculateButton.addActionListener(new java.awt.event.ActionListener()
  89.         {
  90.             public void actionPerformed(java.awt.event.ActionEvent evt)
  91.             {
  92.                 calculateButtonActionPerformed(evt);
  93.             }
  94.         });
  95.  
  96.         exitButton.setText("Exit");
  97.         exitButton.addActionListener(new java.awt.event.ActionListener()
  98.         {
  99.             public void actionPerformed(java.awt.event.ActionEvent evt)
  100.             {
  101.                 exitButtonActionPerformed(evt);
  102.             }
  103.         });
  104.  
  105.         labelLoanAmount.setText("Loan Amount");
  106.  
  107.         loanAmtTextField.setEditable(false);
  108.         loanAmtTextField.setHorizontalAlignment(javax.swing.JTextField.TRAILING);
  109.  
  110.         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  111.         getContentPane().setLayout(layout);
  112.         layout.setHorizontalGroup(
  113.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  114.             .addGroup(layout.createSequentialGroup()
  115.                 .addGap(21, 21, 21)
  116.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  117.                     .addComponent(calculateButton)
  118.                     .addComponent(jLabel6)
  119.                     .addComponent(jLabel4)
  120.                     .addComponent(labelLoanAmount)
  121.                     .addGroup(layout.createSequentialGroup()
  122.                         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  123.                             .addComponent(jLabel2)
  124.                             .addComponent(jLabel5)
  125.                             .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  126.                                 .addComponent(pmtLabel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 116, javax.swing.GroupLayout.PREFERRED_SIZE)
  127.                                 .addComponent(jLabel3)))
  128.                         .addGap(18, 18, 18)
  129.                         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  130.                             .addComponent(durationTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 99, javax.swing.GroupLayout.PREFERRED_SIZE)
  131.                             .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  132.                                 .addComponent(CompoundingcBox, javax.swing.GroupLayout.PREFERRED_SIZE, 112, javax.swing.GroupLayout.PREFERRED_SIZE)
  133.                                 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
  134.                                     .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  135.                                         .addComponent(aprTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
  136.                                         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
  137.                                             .addComponent(downPmtTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
  138.                                             .addComponent(loanAmtTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
  139.                                             .addComponent(purchaseAmtTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)))
  140.                                     .addGap(9, 9, 9)))
  141.                             .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
  142.                                 .addComponent(exitButton)
  143.                                 .addComponent(pmtTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)))))
  144.                 .addContainerGap(21, Short.MAX_VALUE))
  145.             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
  146.                 .addContainerGap(55, Short.MAX_VALUE)
  147.                 .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 187, javax.swing.GroupLayout.PREFERRED_SIZE)
  148.                 .addGap(46, 46, 46))
  149.         );
  150.         layout.setVerticalGroup(
  151.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  152.             .addGroup(layout.createSequentialGroup()
  153.                 .addContainerGap()
  154.                 .addComponent(jLabel1)
  155.                 .addGap(32, 32, 32)
  156.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  157.                     .addComponent(purchaseAmtTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
  158.                     .addComponent(jLabel2))
  159.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  160.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  161.                     .addComponent(downPmtTextField)
  162.                     .addComponent(jLabel3))
  163.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  164.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  165.                     .addComponent(labelLoanAmount)
  166.                     .addComponent(loanAmtTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  167.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  168.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  169.                     .addComponent(jLabel4)
  170.                     .addComponent(aprTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  171.                 .addGap(15, 15, 15)
  172.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  173.                     .addComponent(jLabel6)
  174.                     .addComponent(CompoundingcBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  175.                 .addGap(29, 29, 29)
  176.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  177.                     .addComponent(jLabel5)
  178.                     .addComponent(durationTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  179.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  180.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  181.                     .addComponent(pmtTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
  182.                     .addComponent(pmtLabel))
  183.                 .addGap(35, 35, 35)
  184.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  185.                     .addComponent(calculateButton)
  186.                     .addComponent(exitButton))
  187.                 .addGap(33, 33, 33))
  188.         );
  189.  
  190.         pack();
  191.     }// </editor-fold>                        
  192.    
  193.     private CompoundingOption getSelectedCompounding()
  194.     {
  195.         CompoundingOption option = CompoundingOption.ANNUAL;
  196.         return option;
  197.        
  198.     }
  199.     private void exitButtonActionPerformed(java.awt.event.ActionEvent evt) {                                          
  200.         System.exit(0);
  201.     }                                          
  202.  
  203.     private void calculateButtonActionPerformed(java.awt.event.ActionEvent evt)                                                
  204.     {                                                    
  205.         double purchaseAmt = Double.parseDouble(purchaseAmtTextField.getText());
  206.         double downPayment = Double.parseDouble(downPmtTextField.getText());
  207.         double loanAmount = purchaseAmt - downPayment;
  208.         //loanAmtTextField.setText(Double.toString(purchaseAmt - downPayment));
  209.         double apr = Double.parseDouble(aprTextField.getText());
  210.         double duration = Double.parseDouble(durationTextField.getText());
  211.         CompoundingOption cOption = getSelectedCompounding ();
  212.         calculator = new LoanPayment (purchaseAmt, downPayment, apr,
  213.                                       cOption, duration);
  214.         loanAmtTextField.setText(calculator.toCurrency(loanAmount));
  215.         pmtTextField.setText(calculator.getValue());
  216.     }                                              
  217.  
  218.     /**
  219.      * @param args the command line arguments
  220.      */
  221.     public static void main(String args[]) {
  222.         /* Set the Nimbus look and feel */
  223.         //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
  224.         /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
  225.          * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
  226.          */
  227.         try {
  228.             for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
  229.                 if ("Nimbus".equals(info.getName())) {
  230.                     javax.swing.UIManager.setLookAndFeel(info.getClassName());
  231.                     break;
  232.                 }
  233.             }
  234.         } catch (ClassNotFoundException ex) {
  235.             java.util.logging.Logger.getLogger(LoanPaymentForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  236.         } catch (InstantiationException ex) {
  237.             java.util.logging.Logger.getLogger(LoanPaymentForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  238.         } catch (IllegalAccessException ex) {
  239.             java.util.logging.Logger.getLogger(LoanPaymentForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  240.         } catch (javax.swing.UnsupportedLookAndFeelException ex) {
  241.             java.util.logging.Logger.getLogger(LoanPaymentForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  242.         }
  243.         //</editor-fold>
  244.         //</editor-fold>
  245.  
  246.         /* Create and display the form */
  247.         java.awt.EventQueue.invokeLater(new Runnable()
  248.         {
  249.             public void run() {
  250.                 LoanPaymentForm frame = new LoanPaymentForm();
  251.                 frame.setVisible(true);
  252.                 frame.setLocationRelativeTo(null);
  253.             }
  254.         });
  255.     }
  256.  
  257.     // Variables declaration - do not modify                    
  258.     private javax.swing.JComboBox CompoundingcBox;
  259.     private javax.swing.JTextField aprTextField;
  260.     private javax.swing.JButton calculateButton;
  261.     private javax.swing.JTextField downPmtTextField;
  262.     private javax.swing.JTextField durationTextField;
  263.     private javax.swing.JButton exitButton;
  264.     private javax.swing.JLabel jLabel1;
  265.     private javax.swing.JLabel jLabel2;
  266.     private javax.swing.JLabel jLabel3;
  267.     private javax.swing.JLabel jLabel4;
  268.     private javax.swing.JLabel jLabel5;
  269.     private javax.swing.JLabel jLabel6;
  270.     private javax.swing.JLabel labelLoanAmount;
  271.     private javax.swing.JTextField loanAmtTextField;
  272.     private javax.swing.JLabel pmtLabel;
  273.     private javax.swing.JTextField pmtTextField;
  274.     private javax.swing.JTextField purchaseAmtTextField;
  275.     // End of variables declaration                  
  276. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement