【JAVA语言程序设计基础篇】--事件驱动程序设计--贷款计算器
来源:互联网 发布:淘宝如何发链接给别人 编辑:程序博客网 时间:2024/06/10 08:59
输入年份 利率 总金额 ,计算出总还款数 每月还款数
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{@Overridepublic 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生成数据
0 0
- 【JAVA语言程序设计基础篇】--事件驱动程序设计--贷款计算器
- 【JAVA语言程序设计基础篇】--事件驱动程序设计--鼠标事件
- 【JAVA语言程序设计基础篇】--事件驱动程序设计--键盘事件
- 【JAVA语言程序设计基础篇】--事件驱动程序设计--键盘事件
- 【JAVA语言程序设计基础篇】--事件驱动程序设计--窗口事件
- 【JAVA语言程序设计基础篇】--事件驱动程序设计--匿名类监听器
- 【JAVA语言程序设计基础篇】--事件驱动程序设计--setActionCommand()
- 【JAVA语言程序设计基础篇】--事件驱动程序设计--匿名类监听器
- 【JAVA语言程序设计基础篇】--事件驱动程序设计--几个问题
- 【JAVA语言程序设计基础篇】--事件驱动程序设计--了解监听器、注册以及处理事件
- 【JAVA语言程序设计基础篇】--事件驱动程序设计--定义监听器的另一种方式
- 【JAVA语言程序设计基础篇】--事件驱动程序设计--Timer类的动画
- [Java]事件驱动程序设计
- 《java语言程序设计基础篇》
- java语言程序设计-基础篇
- Java学习笔记----事件驱动程序设计
- Java语言程序设计-基础篇-4.19编程-金字塔
- java语言程序设计-基础篇-4.21习题
- this指针
- 让你的WebView运行如飞
- CQOI2012局部极小值 BZOJ2669 状压DP+容斥
- android 标题栏布局
- 字节序 大小端
- 【JAVA语言程序设计基础篇】--事件驱动程序设计--贷款计算器
- android studio项目如何导入到eclipse中
- 操作系统之死锁
- 8.15总结
- 2038: [2009国家集训队]小Z的袜子(hose) (莫队算法)
- HDU3047 Zjnu Stadium
- Trailing Zeroes
- Gym 100851J Jump(构造)
- HashPasswordForStoringInConfigFile 的MD5算法