import javax.swing.*;
import java.awt.*;
import java.text.*;
import java.awt.event.*;
public class SchoolApplet8 extends JApplet implements ActionListener {
double userAmount;
double userInterest;
double userTerm;
int month = 0;
double remainBalance = 0;
double interestPayment = 0;
double principalPaid = 0;
JPanel row1;
JLabel lblAmount;
JTextField txtAmount;
JLabel lblInterest;
JTextField txtInterest;
JLabel lblTerm;
JTextField txtTerm;
JLabel lblMonthlyPayments;
JTextField txtMonthlyPayments;
JLabel lblPayment;
JTextField txtPayment;
JPanel row2;
JLabel lblHeader;
JTextArea txtResults;
JScrollPane textPane;
JPanel row3;
JButton calculateButton;
JButton clearButton;
JButton exitButton;
public void init()
{
//Instantiate GUI Components
// row1
row1 = new JPanel();
lblAmount = new JLabel(" Loan Amount: $", JLabel.LEFT);
txtAmount = new JTextField(10);
lblMonthlyPayments = new JLabel("Monthly Payments", JLabel.LEFT);
txtMonthlyPayments = new JTextField(6);
lblInterest = new JLabel("Interest Per Period %", JLabel.LEFT);
txtInterest = new JTextField(6);
lblTerm = new JLabel("Term in Years", JLabel.LEFT);
txtTerm = new JTextField(6);
// TO DO
// create a new JLabel and assign it to lblPayment
// create a new JTextField(10) and assign it to txtPayment
// row2
row2 = new JPanel(new BorderLayout());
String pad = " ";
lblHeader = new JLabel("Payment #"+pad+"Monthly Payment Amount:"+pad+"Interest Paid:"+pad+"Principal"+pad+"Balance:");
txtResults = new JTextArea(10, 53);
textPane = new JScrollPane(txtResults);
//row 3
row3 = new JPanel(new GridLayout(1,3,75,1));
calculateButton = new JButton("Calculate");
clearButton = new JButton("Clear");
exitButton = new JButton("Exit");
//Build GUI
setSize(600, 250);
row1.add(lblAmount);
row1.add(txtAmount);
row1.add(lblMonthlyPayments);
row1.add(txtMonthlyPayments);
row1.add(lblInterest);
row1.add(txtInterest);
row1.add(lblTerm);
row1.add(txtTerm);
// To DO
// add lblPayment & txtPayment to row1
// set editable of txtPayment to false: txtPayment.setEditable(false);
//
textPane.setPreferredSize(new Dimension(610,200));
row2.add(lblHeader,BorderLayout.NORTH);
row2.add(textPane,BorderLayout.CENTER);
//Create Calculate button and add listener
calculateButton.addActionListener(this);
clearButton.addActionListener(this);
exitButton.addActionListener(this);
row3.add(exitButton);
row3.add(clearButton);
row3.add(calculateButton);
getContentPane().add(row1,BorderLayout.NORTH);
getContentPane().add(row2,BorderLayout.CENTER);
getContentPane().add(row3,BorderLayout.SOUTH);
}
//Define actions performed for buttons
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == calculateButton)
{
double balance = 0;
double monthPayment=0;
userAmount = Double.parseDouble(txtAmount.getText());
userInterest = Double.parseDouble(txtInterest.getText());
userTerm = Double.parseDouble(txtTerm.getText());
//formats answer in currency format then to string format for display
NumberFormat fmt = NumberFormat.getCurrencyInstance();
monthPayment = CalculateMonthlyPayment();
String payment = fmt.format(monthPayment);
// TO DO
// Display payment in txtPayment : txtPayment.setText(" "+ payment);
//
balance = userAmount;
month = (int)userTerm * 12;
for(int index = 1; index <= month ; index++)
{
interestPayment = balance * (userInterest * .01/12);
principalPaid = monthPayment - interestPayment;
remainBalance = balance - principalPaid;
txtResults.append(" " + index + "\t\t "+ fmt.format(balance) + "\t\t"
+ fmt.format(interestPayment) + "\t\t" + fmt.format(remainBalance) + "\n");
balance = remainBalance;
}
}
else if (e.getSource() == clearButton)
{
txtAmount.setText(null);
txtPayment.setText(null);
txtResults.setText(null);
}
else if (e.getSource() == exitButton)
{
System.exit(0);
}
}
//Mortgage Payment Calculations
double CalculateMonthlyPayment()
{
return (userAmount * ((1 + (userInterest*.01)/12)-1) / (1-(Math.pow((1+(userInterest*.01)/12),-(userTerm*12)))));
}
}
bruizer
0
Newbie Poster
Recommended Answers
Jump to PostDo you have any questions or comments for the posted code?
Jump to Postcode for caculating the interest / so when a user puts in loan amount/Interest rate/terms and monthly payments the interest will be calculated.
Can you explain what the code does now when it executes and what the problems are with it?
What do you input to the program …
All 6 Replies
NormR1
563
Posting Sage
Team Colleague
bruizer
0
Newbie Poster
bruizer
0
Newbie Poster
NormR1
563
Posting Sage
Team Colleague
bruizer
0
Newbie Poster
NormR1
563
Posting Sage
Team Colleague
Be a part of the DaniWeb community
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.