Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package finance.ui;
- import finance.LoanPayment;
- import finance.ReportGenerator;
- import finance.TVMEngine;
- import finance.enums.CompoundingOption;
- /**
- *
- * @author juan
- */
- public class LoanPaymentForm extends javax.swing.JFrame
- {
- private TVMEngine calculator;
- private ReportGenerator report;
- /**
- * Creates new form LoanPaymentForm
- */
- public LoanPaymentForm() {
- initComponents();
- }
- /**
- * This method is called from within the constructor to initialize the form.
- * WARNING: Do NOT modify this code. The content of this method is always
- * regenerated by the Form Editor.
- */
- @SuppressWarnings("unchecked")
- // <editor-fold defaultstate="collapsed" desc="Generated Code">
- private void initComponents()
- {
- jLabel1 = new javax.swing.JLabel();
- jLabel2 = new javax.swing.JLabel();
- jLabel3 = new javax.swing.JLabel();
- jLabel4 = new javax.swing.JLabel();
- jLabel5 = new javax.swing.JLabel();
- jLabel6 = new javax.swing.JLabel();
- pmtLabel = new javax.swing.JLabel();
- purchaseAmtTextField = new javax.swing.JTextField();
- downPmtTextField = new javax.swing.JTextField();
- CompoundingcBox = new javax.swing.JComboBox();
- durationTextField = new javax.swing.JTextField();
- aprTextField = new javax.swing.JTextField();
- pmtTextField = new javax.swing.JTextField();
- calculateButton = new javax.swing.JButton();
- exitButton = new javax.swing.JButton();
- labelLoanAmount = new javax.swing.JLabel();
- loanAmtTextField = new javax.swing.JTextField();
- setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
- setTitle("Payment Calculator");
- jLabel1.setFont(new java.awt.Font("Lucida Grande", 3, 14)); // NOI18N
- jLabel1.setText("Loan Payment Calculator");
- jLabel2.setText("Purchase Amount");
- jLabel3.setText("Down Payment");
- jLabel4.setText("APR");
- jLabel5.setText("Loan Duration");
- jLabel6.setText("Compounding");
- pmtLabel.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
- pmtLabel.setText("Annual Payment ");
- purchaseAmtTextField.setHorizontalAlignment(javax.swing.JTextField.TRAILING);
- downPmtTextField.setHorizontalAlignment(javax.swing.JTextField.TRAILING);
- CompoundingcBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Annual", "Semiannual", "Quarterly", "Monthly", "Weekly" }));
- durationTextField.setHorizontalAlignment(javax.swing.JTextField.TRAILING);
- aprTextField.setHorizontalAlignment(javax.swing.JTextField.TRAILING);
- pmtTextField.setEditable(false);
- pmtTextField.setBackground(new java.awt.Color(102, 255, 204));
- pmtTextField.setHorizontalAlignment(javax.swing.JTextField.TRAILING);
- calculateButton.setText("Calculate");
- calculateButton.addActionListener(new java.awt.event.ActionListener()
- {
- public void actionPerformed(java.awt.event.ActionEvent evt)
- {
- calculateButtonActionPerformed(evt);
- }
- });
- exitButton.setText("Exit");
- exitButton.addActionListener(new java.awt.event.ActionListener()
- {
- public void actionPerformed(java.awt.event.ActionEvent evt)
- {
- exitButtonActionPerformed(evt);
- }
- });
- labelLoanAmount.setText("Loan Amount");
- loanAmtTextField.setEditable(false);
- loanAmtTextField.setHorizontalAlignment(javax.swing.JTextField.TRAILING);
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
- getContentPane().setLayout(layout);
- layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGap(21, 21, 21)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(calculateButton)
- .addComponent(jLabel6)
- .addComponent(jLabel4)
- .addComponent(labelLoanAmount)
- .addGroup(layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLabel2)
- .addComponent(jLabel5)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(pmtLabel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 116, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(jLabel3)))
- .addGap(18, 18, 18)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(durationTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 99, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(CompoundingcBox, javax.swing.GroupLayout.PREFERRED_SIZE, 112, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(aprTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
- .addComponent(downPmtTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(loanAmtTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(purchaseAmtTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)))
- .addGap(9, 9, 9)))
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
- .addComponent(exitButton)
- .addComponent(pmtTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)))))
- .addContainerGap(21, Short.MAX_VALUE))
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addContainerGap(55, Short.MAX_VALUE)
- .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 187, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(46, 46, 46))
- );
- layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addComponent(jLabel1)
- .addGap(32, 32, 32)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(purchaseAmtTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(jLabel2))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(downPmtTextField)
- .addComponent(jLabel3))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(labelLoanAmount)
- .addComponent(loanAmtTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel4)
- .addComponent(aprTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGap(15, 15, 15)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel6)
- .addComponent(CompoundingcBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGap(29, 29, 29)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel5)
- .addComponent(durationTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(pmtTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(pmtLabel))
- .addGap(35, 35, 35)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(calculateButton)
- .addComponent(exitButton))
- .addGap(33, 33, 33))
- );
- pack();
- }// </editor-fold>
- private CompoundingOption getSelectedCompounding()
- {
- CompoundingOption option = CompoundingOption.ANNUAL;
- return option;
- }
- private void exitButtonActionPerformed(java.awt.event.ActionEvent evt) {
- System.exit(0);
- }
- private void calculateButtonActionPerformed(java.awt.event.ActionEvent evt)
- {
- double purchaseAmt = Double.parseDouble(purchaseAmtTextField.getText());
- double downPayment = Double.parseDouble(downPmtTextField.getText());
- double loanAmount = purchaseAmt - downPayment;
- //loanAmtTextField.setText(Double.toString(purchaseAmt - downPayment));
- double apr = Double.parseDouble(aprTextField.getText());
- double duration = Double.parseDouble(durationTextField.getText());
- CompoundingOption cOption = getSelectedCompounding ();
- calculator = new LoanPayment (purchaseAmt, downPayment, apr,
- cOption, duration);
- loanAmtTextField.setText(calculator.toCurrency(loanAmount));
- pmtTextField.setText(calculator.getValue());
- }
- /**
- * @param args the command line arguments
- */
- public static void main(String args[]) {
- /* Set the Nimbus look and feel */
- //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
- /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
- * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
- */
- try {
- for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
- if ("Nimbus".equals(info.getName())) {
- javax.swing.UIManager.setLookAndFeel(info.getClassName());
- break;
- }
- }
- } catch (ClassNotFoundException ex) {
- java.util.logging.Logger.getLogger(LoanPaymentForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
- } catch (InstantiationException ex) {
- java.util.logging.Logger.getLogger(LoanPaymentForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
- } catch (IllegalAccessException ex) {
- java.util.logging.Logger.getLogger(LoanPaymentForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
- } catch (javax.swing.UnsupportedLookAndFeelException ex) {
- java.util.logging.Logger.getLogger(LoanPaymentForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
- }
- //</editor-fold>
- //</editor-fold>
- /* Create and display the form */
- java.awt.EventQueue.invokeLater(new Runnable()
- {
- public void run() {
- LoanPaymentForm frame = new LoanPaymentForm();
- frame.setVisible(true);
- frame.setLocationRelativeTo(null);
- }
- });
- }
- // Variables declaration - do not modify
- private javax.swing.JComboBox CompoundingcBox;
- private javax.swing.JTextField aprTextField;
- private javax.swing.JButton calculateButton;
- private javax.swing.JTextField downPmtTextField;
- private javax.swing.JTextField durationTextField;
- private javax.swing.JButton exitButton;
- private javax.swing.JLabel jLabel1;
- private javax.swing.JLabel jLabel2;
- private javax.swing.JLabel jLabel3;
- private javax.swing.JLabel jLabel4;
- private javax.swing.JLabel jLabel5;
- private javax.swing.JLabel jLabel6;
- private javax.swing.JLabel labelLoanAmount;
- private javax.swing.JTextField loanAmtTextField;
- private javax.swing.JLabel pmtLabel;
- private javax.swing.JTextField pmtTextField;
- private javax.swing.JTextField purchaseAmtTextField;
- // End of variables declaration
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement