JavaSwing实现贷款计算器
JavaSwing实现贷款运算器(入门)
最近开始学习JavaSwing,第一个代码是贷款运算器
贷款运算器要求实现等额本金还款方式和等额本息还款方式
等额本金方式:
月均还款=[贷款本金 * 月利率 * (1+月利率 ^ 还款月数]/[(1+月利率)^ 还款月数-1]
月均利息=贷款本金 * 月利率 * [(1+月利率) ^ 还款月数-(1+月利率) ^ (还款月序 号-1)]/[(1+月利率)^还款月数-1]
总利息=还款月数* 每月月供额 -贷款本金
等额本金方式:
月均还款=(贷款本金/还款月数)+(贷款本金-已归还本金累计额)*月利率
月均利息=剩余本金 * 月利率=(贷款本金-已归还本金累计额)*月利率
总利息=[(总贷款额/还款月数+总贷款额 *月利率)+总贷款额/还款月数 *(1+月利率)]/2 *还款月数-总贷款额
具体代码如下
package 计算器;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class DaiKuan extends JFrame implements ActionListener
{ private static final long serialVersionUID = 1L;//设置文本框private static class jtextfield extends JTextField{private static final long serialVersionUID = 1L;public jtextfield(String text, int x,int y){super(text);setBounds(x,y,200,40);}}//设置标签private static class jlabel extends JLabel{private static final long serialVersionUID = 1L;public jlabel(String text, int x,int y){super(text);setBounds(x,y,400,40);}}//构造函数String a="",b="",c="",d="",g="",f="";JTextField text1=new jtextfield("",150,5);JTextField text2=new jtextfield("",150,50);JTextField text3=new jtextfield("",150,100);JTextField text4=new jtextfield("",150,150);JTextField text5=new jtextfield("",150,200);JTextField text6=new jtextfield("",150,250);public DaiKuan(String title){super(title);this.add(text1);this.add(text2);this.add(text3);this.add(text4);this.add(text5);this.add(text6);JButton button1=new JButton("等额本息");JButton button2=new JButton("等额本金");button1.setBounds(5, 300, 100, 40);button2.setBounds(150, 300, 100, 40);this.add(button1);this.add(button2);button1.addActionListener(this);button2.addActionListener(this);JLabel label1=new jlabel("贷款年限(年)",5,5);JLabel label2=new jlabel("贷款金额(万元)",5,50);JLabel label3=new jlabel("贷款年利率(%)",5,100);JLabel label4=new jlabel("月均还款(元)",5,150);JLabel label5=new jlabel("利息总额(元)",5,200);JLabel label6=new jlabel("还款总额(元)",5,250);this.add(label1);this.add(label2);this.add(label3);this.add(label4);this.add(label5);this.add(label6);this.setLayout(null);this.setResizable(false);this.setBounds(600,200, 360, 420);//this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setVisible(true);}@Overridepublic void actionPerformed(ActionEvent e) {String label = e.getActionCommand(); if(label =="等额本息"){//获取文本框内容a=text1.getText(); b=text2.getText();c=text3.getText();//获取计算结果并显示在文本框内String s1=String.valueOf(lixiyuehuan(a,b,c));text4.setText(s1);String s2=String.valueOf(lizongxi(a,b,c));text5.setText(s2);String s3=String.valueOf(lixiyuehuan(a,b,c)*zhuanhuan(a)*12);text6.setText(s3);}if(label =="等额本金"){a=text1.getText();b=text2.getText();c=text3.getText();String s1=String.valueOf(benjinyuehuan(a,b,c));text4.setText(s1);String s2=String.valueOf(benjinzongxi(a,b,c));text5.setText(s2);String s3=String.valueOf(benjinyuehuan(a,b,c)*zhuanhuan(a)*12);text6.setText(s3);}}//等额本金总息private double benjinzongxi(String str, String str1, String str2) {double a=zhuanhuan(str)*12;//贷款月份double b=10000*zhuanhuan(str1);//贷款金额double c=zhuanhuan(str2)*0.01;//贷款年利率double yuelilv=c/12;//贷款月利率double e1=(b/a+b*yuelilv)+b/a*(1+yuelilv);double e2=e1/2*a-b;return e2;}//等额本金月还private double benjinyuehuan(String str, String str1, String str2) {double a=zhuanhuan(str)*12;double b=10000*zhuanhuan(str1);double tzongxi=benjinzongxi(str,str1,str2); //这儿用了一个投机取巧的方法来计算月均还款,因为觉得要计算已归还本金累计额会比较复杂,等以后想明白了再改回来double tyuexi=tzongxi/a;double tyuehuan=b/a+tyuexi;return tyuehuan;}//等额本息总息private double lizongxi(String str, String str1, String str2) {double a=zhuanhuan(str)*12*lixiyuehuan(str,str1,str2)-zhuanhuan(str1)*10000;return a;}//等额本息月还private double lixiyuehuan(String str, String str1, String str2) {double a=zhuanhuan(str)*12;double b=10000*zhuanhuan(str1);double c=zhuanhuan(str2)*0.01;double yuelilv=c/12;double d=Math.pow(1+yuelilv,a);double e=(b*yuelilv*d)/(d-1);return e;}//将String类型转换为double类型private double zhuanhuan(String str) {double a=Double.parseDouble(str);return a;}
}
这是主函数
package 计算器;
import 计算器.DaiKuan;
public class Main
{public static void main(String[] args){new DaiKuan("贷款计算器");}
}
虽然现在可以实现功能,但是代码写得实在是不好看
希望随着学习的深入,我能来完善自己的代码,把代码写得更好看更实用
JavaSwing实现贷款计算器相关推荐
- delphi dbgrideh 遍历每一个单元格_利用财务函数制作贷款计算器,让你了解还款的每一个细节...
大家好我是践行计算机教育刘老师,今天跟大家分享利用财务函数可以制作贷款计算机,以方便了解还款过程中的每一个细节. 贷款示例效果图 制作贷款计算器 制作贷款计算器-计算每月还款额 在C6单元格中输入公式 ...
- java swing 图片切换_使用Javaswing自定义图片作为按钮(原创)
本人初学习Javaswing没多久,刚开始找不到怎么把图片放在按钮上,上网查找资料都是涵盖了在项目中的,自己摸索后才知道原来没有那么难.下面是我写的例子: package com.iconButton ...
- JAVA之获取JavaSwing单选框JRadioButton选中的值(内容)
JAVA之获取JavaSwing单选框JRadioButton选中的值(内容) package word;import java.awt.BorderLayout; import java.awt.C ...
- JAVA之获取JavaSwing复选框JCheckBox选中的值(内容)
JAVA之获取JavaSwing复选框JCheckBox选中的值(内容) package shishi;import java.awt.BorderLayout; import java.awt.Co ...
- java swing 串口_ComTest 接收串口数据,并显示在文本框内,通过JavaSwing实现 Develop 265万源代码下载- www.pudn.com...
文件名称: ComTest下载 收藏√ [ 5 4 3 2 1 ] 开发工具: Java 文件大小: 3157 KB 上传时间: 2016-09-21 下载次数: 0 提 供 者: 韩坤 ...
- 基于JavaSwing+mysql的图书管理系统设计和实现
前言: 项目是使用Java swing开发,可实现基础数据维护.图书类型管理和维护.图书信息管理和维护.注销退出.关于作者简介等功能.界面设计比较简介.适合作为Java课设设计以及学习技术使用. 引言 ...
- JAVA里点击树与表格结合,javaswing中的表格(jtable)和树(jtree)组件使用实例.doc
javaswing中的表格(jtable)和树(jtree)组件使用实例.doc JAVASWING中的表格JTABLE和树JTREE组件使用实例这篇文章主要介绍了JAVASWING中的表格JTABL ...
- JavaSwing编程总结
都2021年了,还有人用JavaSwing?这只是我的一个爱好,我喜欢做界面开发,但是又只有Java还学的不错,大部分Java书籍中对JavaSwing介绍的都比较一般,我便找了<Java2图形 ...
- 基于JavaSwing开发天猫购物商城系统(用户 管理员角色) 课程设计 毕业设计源码
基于JavaSwing开发天猫购物商城系统(用户 管理员角色)(毕业设计/大作业) 开发工具: Eclipse/Myeclipse/idea+Jdk+MySQL 运行视频: 基于JavaSwing开发 ...
最新文章
- php修改为ajax,php通过ajax实现双击table修改内容
- 北电PBX资料_D 14 外 線 設 定
- java-HTMLjavaSkcriptCSSjQueryajax
- 任务管理平台_基于notion详谈任务规划的思路(二):搭建任务管理平台
- 《去哪网编程题》身份证分组
- linux之安装frida遇到的问题
- ssh(Spring+Spring mvc+hibernate)——applicationContext.xml
- 控制台文字对战游戏 初始版
- CodeMirror动态加载和表单提交
- python ide安装_Python基础学习笔记(一)安装以及IDE的配置
- java流有什么用_在Java中,流比循环有什么优势?
- vim替换字符串带斜杠_Vim:正则表达式匹配一个字符串
- 排序算法之——插入排序分析
- 开源软件技巧与精髓分享
- 高科技玩具这么无趣,为何还要鼓励孩子玩?
- 微信分享开发:准备工作[微信公众平台以及微信中控服务配置](一)
- Java Swing入门
- 在ABP中通过EF直接执行原生Sql的解决方案
- Maxthon 遨游浏览器找回“上次未关闭页面”
- 白帽学院靶场之编辑器的奥秘(二)
热门文章
- 对于青少年编程等级考试的认识
- C++ windows下判断鼠标点击及获取像素点
- Unity Shader学习-高光反射
- android studio引用高德地图api后地图显示白屏
- h5画三角形_如何利用css或html5画出一个三角形?两种不同的制作三角形方法(代码实例)...
- 苹果描述文件无法连接服务器,教你 game center无法连接服务器解决办法及iOS9.3.2公测版已修复GameCenter无响应bug...
- maven dependency的作用英文解释(转载)
- poj 1013 模拟 天平问题
- java的枚举类型是什么_什么是枚举(java枚举类型enum用法)
- 看的见的算法系列——插入排序