码迷,mamicode.com
首页 > 编程语言 > 详细

【JAVA语言程序设计基础篇】--事件驱动程序设计--贷款计算器

时间:2016-08-15 20:50:20      阅读:356      评论:0      收藏:0      [点我收藏+]

标签:


输入年份 利率 总金额 ,计算出总还款数 每月还款数


package chapter16;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;//
import javax.swing.border.TitledBorder;

@SuppressWarnings("serial")
public class LoanCalculator extends JFrame{
	private JTextField AnnualInterestRate = new JTextField();
	private JTextField numberOfYears = new JTextField();
	private JTextField LoanAmount = new JTextField();
	private JTextField MonthlyPayment = new JTextField();
	private JTextField TotalPayment = new JTextField();
	public LoanCalculator(){
		
		JPanel p1 = new JPanel();
		p1.setLayout(new GridLayout(5,2));
		p1.add(new JLabel("annual interest rate"));
		p1.add(AnnualInterestRate);
		p1.add(new JLabel("number of years"));
		p1.add(numberOfYears);
		p1.add(new JLabel("loan amount"));
		p1.add(LoanAmount);
		p1.add(new JLabel("monthly payment"));
		p1.add(MonthlyPayment);
		p1.add(new JLabel("totalpayment"));
		p1.add(TotalPayment);
		p1.setBorder(new TitledBorder("enter loan amount,interest rate,and year"));
		
		
		JPanel p2 = new JPanel();
		p2.setLayout(new FlowLayout(FlowLayout.RIGHT));
		JButton button = new JButton("computer payment");
		p2.add(button,BorderLayout.SOUTH);
		
		add(p1,BorderLayout.CENTER);//需要在这里加入方位
		add(p2,BorderLayout.SOUTH);
		
		button.addActionListener(new buttonListener());
		
	}
	public static void main(String[] args) {
		JFrame frame = new LoanCalculator();
		frame.setTitle("loancalculator");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLocationRelativeTo(null);
		frame.setVisible(true);
		frame.pack();
		frame.setSize(300, 300);
	}
	 class buttonListener implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent e) {
			
			double interest = Double.parseDouble(AnnualInterestRate.getText());
			double loanamount = Double.parseDouble(LoanAmount.getText());
			int year = Integer.parseInt(numberOfYears.getText());
			
			Loan loan = new Loan(interest,year,loanamount);
			
			MonthlyPayment.setText(String.format("%.2f", loan.getMonthlyPayment()));//why is no useful in Line 61??
			TotalPayment.setText(String.format("%.2f", loan.getTotalPayment()));
			
		}
	}
}

class Loan {
	  private double annualInterestRate;
	  private int numberOfYears;
	  private double loanAmount;
	  private java.util.Date loanDate;

	  /** Default constructor */
	  public Loan() {
	    this(2.5, 1, 1000);
	  }

	  /** Construct a loan with specified annual interest rate,
	      number of years and loan amount 
	    */
	  public Loan(double annualInterestRate, int numberOfYears,
	      double loanAmount) {
	    this.annualInterestRate = annualInterestRate;
	    this.numberOfYears = numberOfYears;
	    this.loanAmount = loanAmount;
	    loanDate = new java.util.Date();
	  }

	  /** Return annualInterestRate */
	  public double getAnnualInterestRate() {
	    return annualInterestRate;
	  }

	  /** Set a new annualInterestRate */
	  public void setAnnualInterestRate(double annualInterestRate) {
	    this.annualInterestRate = annualInterestRate;
	  }

	  /** Return numberOfYears */
	  public int getNumberOfYears() {
	    return numberOfYears;
	  }

	  /** Set a new numberOfYears */
	  public void setNumberOfYears(int numberOfYears) {
	    this.numberOfYears = numberOfYears;
	  }

	  /** Return loanAmount */
	  public double getLoanAmount() {
	    return loanAmount;
	  }

	  /** Set a newloanAmount */
	  public void setLoanAmount(double loanAmount) {
	    this.loanAmount = loanAmount;
	  }

	  /** Find monthly payment */
	  public double getMonthlyPayment() {
	    double monthlyInterestRate = annualInterestRate / 1200;
	    double monthlyPayment = loanAmount * monthlyInterestRate / (1 -
	      (Math.pow(1 / (1 + monthlyInterestRate), numberOfYears * 12)));
	    return monthlyPayment;    
	  }

	  /** Find total payment */
	  public double getTotalPayment() {
	    double totalPayment = getMonthlyPayment() * numberOfYears * 12;
	    return totalPayment;    
	  }

	  /** Return loan date */
	  public java.util.Date getLoanDate() {
	    return loanDate;
	  }
}



技术分享



点击computer payment生成数据 


技术分享

【JAVA语言程序设计基础篇】--事件驱动程序设计--贷款计算器

标签:

原文地址:http://blog.csdn.net/qq_24653023/article/details/52214275

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!