 Java: An Applet That Provides the User With a Payment Schedule, or Amortization Schedule

Subject Computer Science Java Programming

Question

Your project as a programming consultant is to create a program that develops an amortization schedule. Your program should be written as a Java applet. As an applet, your program will be executed through the use of a browser. Your applet should prompt the user for three different inputs, loan amount, the duration of the loan and the annual interest rate. Your task is to create a Java applet that provides the user with a payment schedule, or amortization schedule. The schedule must include monthly payment amount, interest amount, principal amount and the remaining balance per pay period. The amortization table must be presented to the user in a nicely formatted table.

The applet input will be the loan amount, annual percentage rate (APR), and the number of years to pay out the loan. The output will be the loan amount, interest rate per pay period number of pay periods and the monthly payment. This information would be followed by the amortization schedule. Following is an example of the expected output for a \$35,000 loan over 8 years at 8.5% interest rate.

Loan Amount: \$35,000
Interest Rate per pay period: 0.085
Pay Periods: 96
Monthly Payment Amount: \$503.72

Payment    Monthly Amount       Interest      Principal       Balance
35,000.00
1                         503.72                   247.92          255.80          34,744.20
2                         503.72                   246.10          257.62          34,486.58
3                         503.72                   244.28          259.44          33,965.86
….
95                        503.72                      7.07             496.65             500.78
96                        503.72                      3.55             500.17                0.61

The necessary calculations are below:
p, loan amount or principal
n, number of payments = payments per year * number of years
i, interest rate per pay period = APR/payments per year = APR/12
t, interest paid = interest rate per pay period * previous principal balance
r, monthly payment amount = principal * interest per period / (1-(1+(interest per period)/100)^(number of payments-1)^2)
a, principle amount = monthly payment amount – interest paid
b, principle balance = previous balance – principle amount

Hint: In Java syntax the monthly payment calculation is:

r=((p*(i/100))/(1-(Math.pow((1+(i/100)),(n*(-1))))));

Details:

Please note that your program should accept three inputs:
1.The loan amount,
2.Annual Percentage Rate, and
3.The number of years to pay out the loan

And calculate six types of outputs:
1.The monthly payment amount,
2.Interest per pay period,
3.Number of pay periods,
4.Amortization schedule (including amount of interest per pay period, principal per pay period, and principle balance)

When coding your applet, remember the following:
Your applet needs to extend the Applet (or JApplet) class. Of course, you need to import the appropriate applet package(s).
Your applet needs to have declarations for the fields, labels, components, widgets, and so forth that you use in the applet.
There are applet methods that are called automatically by browsers (please see your textbook). Make sure you initialize (implement init()) your applet.
You need the code that does the calculation of the interest.
You need to handle the event of pressing the button. There are some examples in the book (ask your instructor for the specific pages).
You may use this sample code for example.

Please create an HTML page that contains the applet tag. In addition to your mortgage calculator commented Java code, you need to provide the HTML page.

Here is the Hello world Java code example to create an applet:

import java.applet.*;
import java.awt.*;
/**
* The HelloWorld class implements anapplet that
* simply displays "HelloWorld!".
*/
public class HelloWorld extends Applet {
public void paint(Graphics g){
// Display "Hello World!"
g.drawString("Hello world!",50, 25);
}
}

Then you would compile the class and create an HTML page called Hello.htm:

<HTML>

<Title>A Simple Program.</Title>

<BODY>

Here is the output of my program:
<APPLET CODE="HelloWorld.class"WIDTH="150" HEIGHT="25">

</APPLET>

</BODY>

</HTML>

Deliverable Details:

Upload the commented source code file of your calculator, the class file and the HTML file.

Solution Preview

This material may consist of step-by-step explanations on how to solve a problem or examples of proper writing, including the use of citations, references, bibliographies, and formatting. This material is made available for the sole purpose of studying and learning - misuse is strictly forbidden.

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

/**
*
* @author
*/
public class AmortizationSchedule extends JApplet {

private JTextField loan_amount;
private JTextField APR;
private JTextField years;
private JTextArea output;
private JPanel input_panel;
private JPanel output_panel;
private JButton calculation;
private JScrollPane jScrollPane;

public void init() {
input_panel = new JPanel(new GridLayout(4, 2,5,5));

input_panel.add(new JLabel(" Loan amount: "));
loan_amount = new JTextField(8);
input_panel.add(new JLabel(" Annual Percentage Rate: "));
APR = new JTextField(8);
input_panel.add(new JLabel(" Number of years to pay out the loan: "));
years = new JTextField(8);
output = new JTextArea(15, 30);
output_panel = new JPanel();
jScrollPane = new JScrollPane(output);

calculation = new JButton("Calculate");

This is only a preview of the solution. Please use the purchase button to see the entire solution

Related Homework Solutions

Rock, Paper, Scissors Program \$60.00
Programming
Java
Computer Science
Rock Paper Scissors
Game
MySQL
Tables
Queries
Results
Rounds
Probability
Loops
Conditions
Winning
Losing
User vs Computer
Databases
World Puzzle Problem & Arrays in Java \$60.00
Java
Programming
Codes
Algorithms
Arrays
Word Puzzles
Input
Output
Running Time
Integers
Loops
Maximum Count
Divide And Conquer Method
Statements
Variables
Recursive Calls
ArrayList Fraction Objects in Java \$15.00
Java
Programming
Computer Science
Coding
Arrays
Fractions
Numerator
Denominator
Decimal Values
Sorted List
Algorithms
Loops
Variables
Statements
Conditions
Live Chats