采用事件驱动编程以及GUI组件开发一个贷款计算器
来源:互联网 发布:韩国中国聊天软件 编辑:程序博客网 时间:2024/06/02 13:20
贷款计算器运行结果如下:
这个程序有以下关键几步:
1)创建一个GridPane,添加标签、文本域和按钮到面板中。
a)创建一个GridPane,添加标签、文本域和按钮到面板中。
b)将按钮设置为右侧对齐。
2)处理事件。
创建并注册一个处理器,用于处理按键单击的动作时间。处理器获得用户输入的贷款、利率和年数。计算月支付额和总支付额,并将值显示在文本域中。
首先要设计一个Loan贷款类
Loan类包含两个构造方法、四个get方法、三个set方法、以及求月偿还额和总偿还额的方法。可以通过使用无参构造方法或者带三个参数(年利率、年数和贷款额)的构造方法来构造一个Loan对象。当创建一个贷款对象时,它的数据存储在loanDate域中,getLoanDate方法返回日期。程序如下:
package com.company;import java.util.Date;public class Loan{ private double annualInterestRate; private int numberOfYears; private double loanAmout; private java.util.Date loanDate; public Loan(){this(2.5,1,1000);} public Loan(double annualInterestRate,int numberOfYears,double loanAmout) { this.annualInterestRate=annualInterestRate; this.numberOfYears=numberOfYears; this.loanAmout=loanAmout; loanDate=new java.util.Date(); } public double getAnnualInterestRate() { return annualInterestRate; } public void setAnnualInterestRate(double annualInterestRate) { this.annualInterestRate=annualInterestRate; } public int getNumberOfYears() { return numberOfYears; } public void setNumberOfYears(int numberOfYears) { this.numberOfYears=numberOfYears; } public double getLoanAmout() { return loanAmout; } public void setLoanAmout(double loanAmout) { this.loanAmout=loanAmout; } public double getMothlyPayment() { double monthlyInterestRate=annualInterestRate/1200; double monthlyPayment=loanAmout*monthlyInterestRate/(1-(1/Math.pow(1+monthlyInterestRate,numberOfYears*12))); return monthlyPayment; } public double getTotalPayment() { double totalPayment=getMothlyPayment()*12*numberOfYears; return totalPayment; } public java.util.Date getLoanDate() { return loanDate; }}
然后就是就用Loan类中的方法计算贷款
进行事件驱动编程以及GUI组件,完整代码如下:
package com.company;import javafx.application.Application;import javafx.geometry.HPos;import javafx.geometry.Pos;import javafx.scene.Scene;import javafx.scene.control.Button;import javafx.scene.control.Label;import javafx.scene.control.TextField;import javafx.scene.layout.GridPane;import javafx.stage.Stage;public class LoanCalculator extends Application { private TextField tfAnnualInterestRate=new TextField(); private TextField tfNumberOfYears=new TextField(); private TextField tfLoanAmount=new TextField(); private TextField tfMonthlyPayment=new TextField(); private TextField tfTotalPayment=new TextField(); private Button btCalculator=new Button("Calculator"); @Override public void start(Stage primaryStage) { GridPane gridPane=new GridPane(); gridPane.setHgap(5); gridPane.setVgap(5); gridPane.add(new Label("Annual Interest Rate:"),0,0); gridPane.add(tfAnnualInterestRate,1,0); gridPane.add(new Label("Number Of Years:"),0,1); gridPane.add(tfNumberOfYears,1,1); gridPane.add(new Label("Loan Amount:"),0,2); gridPane.add(tfLoanAmount,1,2); gridPane.add(new Label("Monthly Payment"),0,3); gridPane.add(tfMonthlyPayment,1,3); gridPane.add(new Label("Total Payment"),0,4); gridPane.add(tfTotalPayment,1,4); gridPane.add(btCalculator,1,5); gridPane.setAlignment(Pos.CENTER); tfAnnualInterestRate.setAlignment(Pos.BOTTOM_RIGHT); tfNumberOfYears.setAlignment(Pos.BOTTOM_RIGHT); tfLoanAmount.setAlignment(Pos.BOTTOM_RIGHT); tfMonthlyPayment.setAlignment(Pos.BOTTOM_RIGHT); tfTotalPayment.setAlignment(Pos.BOTTOM_RIGHT); tfMonthlyPayment.setEditable(false); tfTotalPayment.setEditable(false); GridPane.setHalignment(btCalculator, HPos.RIGHT); //创建一个处理器并和按键进行注册 btCalculator.setOnAction(e -> calculateLoanPayment()); Scene scene=new Scene(gridPane,400,250); primaryStage.setTitle("LoanCalculator"); primaryStage.setScene(scene); primaryStage.show(); } private void calculateLoanPayment() { //调用getText方法返回文本域中的字符串文本 double interest=Double.parseDouble(tfAnnualInterestRate.getText()); int year=Integer.parseInt(tfNumberOfYears.getText()); double loanAmount=Double.parseDouble(tfLoanAmount.getText()); Loan loan=new Loan(interest,year,loanAmount); //用String.format方法用来将数字格式化成希望的格式,并将其作为字符串返回 tfMonthlyPayment.setText(String.format("$%.2f",loan.getMothlyPayment())); tfTotalPayment.setText(String.format("$%.2f",loan.getTotalPayment())); }}
阅读全文
0 0
- 采用事件驱动编程以及GUI组件开发一个贷款计算器
- 一个JavaScript贷款计算器【复习】
- 采用什么开发工具和GUI组件开发JavaSE应用程序?
- 一个JavaScript实现的贷款计算器
- 【JAVA语言程序设计基础篇】--事件驱动程序设计--贷款计算器
- GUI编程:简易生命计算器
- 事件驱动编程以及内部类
- 关于Web开发里并发、同步、异步以及事件驱动编程的相关技术
- UFT GUI 测试—— 概述 相关项: GUI 测试和组件 UFT GUI 测试解决方案采用关键字驱动测试的概念, 以增强测试创建和维护。 关键字驱动测试是一项将大量编程工作与实际测试步骤分离的技术
- GUI编程 窗体事件
- GUI编程 action事件
- GUI组件和事件处理
- 购房贷款计算器
- 二手房贷款计算器
- 两个贷款计算器
- JavaScript贷款计算器
- java GUI,贷款服务器
- 键盘驱动组件事件
- Centos7安装配置Apache+PHP+Mysql+phpmyadmin
- 那些年写过的选择器
- idea工作中常用的快捷键总结
- KVM虚拟机设置网桥模式并从宿主机查看虚拟机ip地址
- C++primer[习题][第二章][21-30]
- 采用事件驱动编程以及GUI组件开发一个贷款计算器
- STM32的GPIO可供配置的选项
- 2018届秋季校招总结
- Kotlin 资源大全
- 分数运算
- ps-产品精修
- IntelliJ IDEA每次修改代码都要重启tomcat后修改才生效?
- C++primer[习题][第二章][31-42]
- day12 this super 在构造方法中的使用