Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Loan Amortization Program:- Design and implement a GUI application that has an e

ID: 3656905 • Letter: L

Question

Loan Amortization Program:- Design and implement a GUI application that has an entry field to accept the loan amount, a drop down for interest rate (3.25 to 5.00) and a drop down for years (5, 10, 15 and 30). Calculate loan payment and display the amortization schedule for the loan. The UI Design is completely up to you. Note: Formula to calculate a mortgage double monthlyPayment = loanAmount*monthlyInterestRate / (1 - (Math.pow(1 / (1 + monthlyInterestRate), numOfYears * 12))); NO APPLETS PLEASE______PLEASE ANSWER USING ONLY JFRAME

Explanation / Answer

import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; import java.lang.*; public class LoanSchedule extends JApplet implements ActionListener { //Create all needed labels private JLabel jlblLoanAmount = new JLabel("Loan Amount"); private JLabel jlblNumOfYears = new JLabel("Number Of Years"); private JLabel jlblInterestRate = new JLabel("Interest Rate (Annual)"); //Create all needed text fields private JTextField jtfLoanAmount = new JTextField(10); private JTextField jtfNumOfYears = new JTextField(10); private JTextField jtfInterestRate = new JTextField(10); //Calculate button is also needed private JButton jbtCalculate = new JButton("Amortize Loan"); //...and a text area where the results will be displayed private JTextArea jtaResults = new JTextArea(); public void init() { //Panel p1 will hold the input JPanel p1 = new JPanel(); p1.setLayout(new GridLayout(3,2)); p1.add(jlblLoanAmount); p1.add(jtfLoanAmount); p1.add(jlblNumOfYears); p1.add(jtfNumOfYears); p1.add(jlblInterestRate); p1.add(jtfInterestRate); //Panel p2 will hold panel p1 and the calculate button JPanel p2 = new JPanel(); p2.setLayout(new BorderLayout()); p2.setBorder(new TitledBorder("Enter loan amount, Number of years and annual interest rate")); p2.add(p1, BorderLayout.WEST); p2.add(jbtCalculate, BorderLayout.EAST); //Action listener for the button jbtCalculate.addActionListener(this); //Make the text area scrollable and uneditable JScrollPane scrollPane = new JScrollPane(jtaResults); jtaResults.setRows(12); jtaResults.setEditable(false); //Place the two panels to the applet getContentPane().add(p2, BorderLayout.CENTER); getContentPane().add(scrollPane, BorderLayout.SOUTH); } public void actionPerformed(ActionEvent e) { if(e.getSource() == jbtCalculate) calculateLoan(); else System.out.println("you will never see this text!"); /* Because we only have one element that uses actionListener (jbtCalculate) this method should only have a call to calculate() method in it but i put the if-else statement just to show that it can handle other elements with alctiolistener. For example, if we had another button that had addActionListener attached to it we could say something like this: if(e.getSource() == jbtCalculate) { do something here; } else if(e.getSource() == jbtSomeOtherElement) { do something else here; } */ } public void calculateLoan() { int numberOfYears = Integer.parseInt(jtfNumOfYears.getText()); double loanAmount = Double.parseDouble(jtfLoanAmount.getText()); double annualInterestRate = (Double.parseDouble(jtfInterestRate.getText())) / 100; double monthlyInterestRate = annualInterestRate / 12; double numberOfMonths = numberOfYears * 12; double monthlyPayment = loanAmount * (monthlyInterestRate / (1 - Math.pow(1 + monthlyInterestRate, - numberOfMonths))); double totalPayment = monthlyPayment * numberOfMonths; double balance = loanAmount; double interest; double principal; jtaResults.append("Payment# " + "Interest " + "Principal " + "Balance "); for(int i = 0; i
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote